问题标签 [dcast]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 创建一个新表,显示 R 中单个列中两个不同类别之间的百分比变化
我正在尝试学习如何使用 R“reshape2”包中的一些功能,特别是dcast
. 我正在尝试创建一个表格,显示两个软件版本的总和(所有文件的一类数据的总和除以一个“案例”中的最大“RepNum”)以及两者之间的百分比变化。
这是我的数据集的样子(示例数据):
实际数据集有6 个唯一文件,两个最前面的“TestNums & Versions”,2 个唯一类别和4 个唯一案例。
借助互联网的魔力,我能够根据不同的需求拼凑出一张看起来像这样的表格(但代码应该相似):
这是制作该表的代码:
vLatest 和 vPrevious 是具有最新和第二个最新版本号的变量
我真的只是希望有人能帮助我理解 dcast 的语法。最初生成的偏差铸造是我对一切如何协同工作最模糊的地方。而不是为文件获取这个,我真的想得到它,以便它是每个类别的所有文件的总和,用于一个独特的“案例”,并显示它们之间的百分比变化。
注意:四舍五入和百分号是加号,但非常首选加号
这些数字不反映正确完成的实际数学,只是我放在那里的随机数字作为示例。我希望能充分解释我正在尝试做的数学。
用于测试的示例数据集
值得注意的是,这里的df本质上 deviations
是上面代码中的数据框(带有vLatest和vPrevious)
编辑:
MrFlick 的答案几乎是完美的,但是当我尝试在我的实际数据集中实现它时,我遇到了问题。问题是由于使用vLatest
andvPrevious
作为我的版本,而不是仅仅编写字符串。这是我用来获取这两个变量的代码
当我尝试这个时:
我收到了这个错误:Error: non-numeric argument to binary operator
第二次编辑:
我尝试为两个 TestNum 值创建新变量(因为它们可以是数值并且不需要因子)。
(我不使用“ prevTestNum<-maxTestNum-1
”的原因是因为有时数据结果中会省略版本)
但是,当我将这两个变量放入代码中时,“更改”列的值都是相同的。
r - dcast 对象数量级大于原始对象
我有一个 data.frame,其中包含两列,一个 Sample_ID 变量和一个 value 变量。每个样本(其中有 1971 个)有 132 个单独的点。整个对象只有 ~3000000 字节,或大约 0.003 GB(根据object.size()
)。出于某种原因,当我尝试将对象转换为宽格式时,它会抛出一个错误,指出它无法分配大小为 3.3 GB 的向量,这比原始对象大 3 个数量级。
我希望的输出是每个样本 1 列,每列有 132 行数据。
我正在使用的 dcast 代码如下:
我会提供数据集以实现可重复性,但因为这个问题与对象大小有关,我认为它的子集不会有帮助,而且我不确定如何轻松发布完整的数据集。如果您知道如何发布完整数据集或认为子集会有所帮助,请告诉我。
谢谢
r - 使用行中的所有值将数据框从长转换为宽
我在互联网上阅读了很多内容,但没有找到解决方案。我有这个data.frame:
现在我想将数据框转换为宽,但计数值需要在这样的行中:
我不知道该怎么做。先感谢您。
r - 仅针对列值的子集使用 dcast.data.table 从长转换为宽
我正在处理一个购物篮分析项目,并且有一个数据包含一个表示 ID 的变量,而另一个数据只包含一个篮子中的一个项目。用户中有大约 5 万个独特的项目,但我在下面创建了一个简单的表格来说明。
然后,我使用 dcast 函数将每个产品转换为具有二进制值的自己的列,表明它们是订单的一部分。
正如我所提到的,由于内存限制,我无法在整个数据集上使用此方法(因为这将为每个产品创建 50K 列)。因此,我试图找到一个解决方案,其中 dcast 仅根据仅包含在 ID ==1 中的项目创建“产品”列(这意味着将排除“果汁”和“水”列)。另外,我正在使用一个相当大的 34MM 观察数据集,所以我正在寻找一个可以利用 data.table API 的有效解决方案,并且特别试图避免循环通过产品。我希望这个问题很清楚。谢谢。
r - R - 来自 Reshape2 的 dcast - 按值变量而不是变量名排序
我有以下 data.frame 命名countries_tools
。它由 3 列组成(一个日期时间列(过去 13 个月)、一个名称列(包含国家)和一个访问列(从这些特定国家访问该页面的人)):
请注意,我删除了其间的其他 11 个月。另请注意,该名称始终是相同 5 个国家/地区的列表,这与上一个分析月份(本例中为 2017 年 7 月)访问次数较多的五个国家相对应。
在此消息的末尾有一个 dput
与我的数据。
为了更好地了解数月访问的数据和发展,我dcast
从我的 data.frame 中做了一个:
但是,生成的数据框按国家名称(按字母顺序)对列进行排序:
但是,我希望顺序是由值变量(访问)完成的,因此最佳顺序应该是:
日期时间,中国,德国,美国,印度,日本
可以做到吗(充其量是不需要额外的步骤)?使用其他功能也是可能的。
数据
r - 数据表 dcast 列标题
我有一个表格的数据表
由...制作
我想将其转换为
我已经设法用 dcast 完成了大部分工作:
但是,我需要一些帮助来创建合理的列标题。目前我有
["ID"
"REGION.1_Center_?15,000-?19,999_6-9"
"REGION.1_North_?15,000-?19,999_10-15"
"REGION.1_North_?15,000-?19,999_6-9"
"REGION.1_SE_?15,000- ?19,999_15-19" "REGION.1_SW_Under ?5,000_10-15" "REGION.1_Wales_Over ?70,000_1-5"
"INCOME_BAND.1_Center_?15,000-?19,999_6-9"
"INCOME_BAND.1_North_?15,000-?19,999_10- 15"
"INCOME_BAND.1_North_?15,000-?19,999_6-9"
"INCOME_BAND.1_SE_?15,000-?19,999_15-19"
"INCOME_BAND.1_SW_Under ?5,000_10-15" "
INCOME_BAND.1_Wales_Over ?70,000_S1-5"
.1_Center_?15,000-?19,999_6-9" "RESIDENCY_YEARS.1_North_?15,000-?19,999_10-15" "RESIDENCY_YEARS.1_North_?15,000-?19,999_6-9"
"RESIDENCY_YEARS.1_SE_?15,000-?19,999_15-19"
"RESIDENCY_YEARS.1_SW_Under ?5,000_10-15"
"RESIDENCY_YEARS.1_Wales_Over ?70,000_1-5"
我希望列标题是
有人可以建议吗?
r - 表示多个组的多个列
我正在尝试为具有多个组的数据框的多个列找到不包括 NA 的方法
所以我得到一个带有数字的名称列表,所以我知道要选择哪些列:
我想按城市和年份计算 PM25、臭氧和二氧化碳的平均值。这意味着我需要第 1,2,4,6:7 列)
但这并不是我真正想要的,因为它包含了我不需要的东西的平均值,而且它不是数据框格式。我可以转换它然后放弃,但这似乎是一种非常低效的方法。
有没有更好的办法?
r - 转置 R 数据框并连接多列中出现的值
我需要从以下内容转换 R 中的数据框:
对此:
我尝试过使用 dcast,但我对 R 很陌生,并且无法获得任何接近我需要的东西。我应该使用别的东西吗?
谢谢!
r - 为什么要四舍五入我的浮点数?
我有一个数据框:
当我用 dcast 函数转换它时,值列不保留为浮点数:
为什么“area_class”是一个数字类,当我转换它时不保留为浮点数?
r - R - 旋转一个困难的数据框
假设我有销售各种产品的三个销售代表的销售数据。困难在于每个销售代表销售的产品组合不同,而且数量也不一定相同:
Bob 销售产品 A、B 和 C
Mike 销售产品 A、B、C 和 D
Sara 销售产品 A、B 和 E
我想在产品上旋转它,这样结果看起来像这样:
如果他们都有相同的产品,我会按产品将它们过滤到单独的数据框中,然后在 RepName 上将它们重新组合在一起。我已经尝试了所有我能想到的spread
和dcast
。谢谢你的帮助!
示例数据帧的代码: