问题标签 [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.

0 投票
1 回答
101 浏览

r - 创建一个新表,显示 R 中单个列中两个不同类别之间的百分比变化

我正在尝试学习如何使用 R“reshape2”包中的一些功能,特别是dcast. 我正在尝试创建一个表格,显示两个软件版本的总和(所有文件的一类数据的总和除以一个“案例”中的最大“RepNum”)以及两者之间的百分比变化。

这是我的数据集的样子(示例数据):

实际数据集有6 个唯一文件,两个最前面的“TestNums & Versions”,2 个唯一类别和4 个唯一案例。

借助互联网的魔力,我能够根据不同的需求拼凑出一张看起来像这样的表格(但代码应该相似):

这是制作该表的代码:

vLatest 和 vPrevious 是具有最新和第二个最新版本号的变量

我真的只是希望有人能帮助我理解 dcast 的语法。最初生成的偏差铸造是我对一切如何协同工作最模糊的地方。而不是为文件获取这个,我真的想得到它,以便它是每个类别的所有文件的总和,用于一个独特的“案例”,并显示它们之间的百分比变化。

注意:四舍五入和百分号是加号,但非常首选加号

这些数字不反映正确完成的实际数学,只是我放在那里的随机数字作为示例。我希望能充分解释我正在尝试做的数学。

用于测试的示例数据集

值得注意的是,这里的df本质上 deviations 是上面代码中的数据框(带有vLatest和vPrevious)

编辑:

MrFlick 的答案几乎是完美的,但是当我尝试在我的实际数据集中实现它时,我遇到了问题。问题是由于使用vLatestandvPrevious作为我的版本,而不是仅仅编写字符串。这是我用来获取这两个变量的代码

当我尝试这个时:

我收到了这个错误:Error: non-numeric argument to binary operator

第二次编辑:

我尝试为两个 TestNum 值创建新变量(因为它们可以是数值并且不需要因子)。

(我不使用“ prevTestNum<-maxTestNum-1”的原因是因为有时数据结果中会省略版本)

但是,当我将这两个变量放入代码中时,“更改”列的值都是相同的。

0 投票
1 回答
30 浏览

r - dcast 对象数量级大于原始对象

我有一个 data.frame,其中包含两列,一个 Sample_ID 变量和一个 value 变量。每个样本(其中有 1971 个)有 132 个单独的点。整个对象只有 ~3000000 字节,或大约 0.003 GB(根据object.size())。出于某种原因,当我尝试将对象转换为宽格式时,它会抛出一个错误,指出它无法分配大小为 3.3 GB 的向量,这比原始对象大 3 个数量级。

我希望的输出是每个样本 1 列,每列有 132 行数据。

我正在使用的 dcast 代码如下:

我会提供数据集以实现可重复性,但因为这个问题与对象大小有关,我认为它的子集不会有帮助,而且我不确定如何轻松发布完整的数据集。如果您知道如何发布完整数据集或认为子集会有所帮助,请告诉我。

谢谢

0 投票
1 回答
33 浏览

r - 使用行中的所有值将数据框从长转换为宽

我在互联网上阅读了很多内容,但没有找到解决方案。我有这个data.frame:

现在我想将数据框转换为宽,但计数值需要在这样的行中:

我不知道该怎么做。先感谢您。

0 投票
1 回答
430 浏览

r - 仅针对列值的子集使用 dcast.data.table 从长转换为宽

我正在处理一个购物篮分析项目,并且有一个数据包含一个表示 ID 的变量,而另一个数据只包含一个篮子中的一个项目。用户中有大约 5 万个独特的项目,但我在下面创建了一个简单的表格来说明。

然后,我使用 dcast 函数将每个产品转换为具有二进制值的自己的列,表明它们是订单的一部分。

正如我所提到的,由于内存限制,我无法在整个数据集上使用此方法(因为这将为每个产品创建 50K 列)。因此,我试图找到一个解决方案,其中 dcast 仅根据仅包含在 ID ==1 中的项目创建“产品”列(这意味着将排除“果汁”和“水”列)。另外,我正在使用一个相当大的 34MM 观察数据集,所以我正在寻找一个可以利用 data.table API 的有效解决方案,并且特别试图避免循环通过产品。我希望这个问题很清楚。谢谢。

0 投票
1 回答
516 浏览

r - R - 来自 Reshape2 的 dcast - 按值变量而不是变量名排序

我有以下 data.frame 命名countries_tools。它由 3 列组成(一个日期时间列(过去 13 个月)、一个名称列(包含国家)和一个访问列(从这些特定国家访问该页面的人)):

请注意,我删除了其间的其他 11 个月。另请注意,该名称始终是相同 5 个国家/地区的列表,这与上一个分析月份(本例中为 2017 年 7 月)访问次数较多的五个国家相对应。

在此消息的末尾有一个 dput与我的数据。

为了更好地了解数月访问的数据和发展,我dcast从我的 data.frame 中做了一个:

但是,生成的数据框按国家名称(按字母顺序)对列进行排序:

顺序是字母顺序,而不是变量值

但是,我希望顺序是由值变量(访问)完成的,因此最佳顺序应该是:

日期时间,中国,德国,美国,印度,日本

可以做到吗(充其量是不需要额外的步骤)?使用其他功能也是可能的。

数据

0 投票
1 回答
265 浏览

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"

我希望列标题是

有人可以建议吗?

0 投票
4 回答
11354 浏览

r - 表示多个组的多个列

我正在尝试为具有多个组的数据框的多个列找到不包括 NA 的方法

所以我得到一个带有数字的名称列表,所以我知道要选择哪些列:

我想按城市和年份计算 PM25、臭氧和二氧化碳的平均值。这意味着我需要第 1,2,4,6:7 列)

但这并不是我真正想要的,因为它包含了我不需要的东西的平均值,而且它不是数据框格式。我可以转换它然后放弃,但这似乎是一种非常低效的方法。

有没有更好的办法?

0 投票
1 回答
84 浏览

r - 转置 R 数据框并连接多列中出现的值

我需要从以下内容转换 R 中的数据框:

对此:

我尝试过使用 dcast,但我对 R 很陌生,并且无法获得任何接近我需要的东西。我应该使用别的东西吗?

谢谢!

0 投票
1 回答
839 浏览

r - 为什么要四舍五入我的浮点数?

我有一个数据框:

当我用 dcast 函数转换它时,值列不保留为浮点数:

为什么“area_class”是一个数字类,当我转换它时不保留为浮点数?

0 投票
2 回答
60 浏览

r - R - 旋转一个困难的数据框

假设我有销售各种产品的三个销售代表的销售数据。困难在于每个销售代表销售的产品组合不同,而且数量也不一定相同:

Bob 销售产品 A、B 和 C

Mike 销售产品 A、B、C 和 D

Sara 销售产品 A、B 和 E

我想在产品上旋转它,这样结果看起来像这样:

如果他们都有相同的产品,我会按产品将它们过滤到单独的数据框中,然后在 RepName 上将它们重新组合在一起。我已经尝试了所有我能想到的spreaddcast。谢谢你的帮助!

示例数据帧的代码: