问题标签 [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 - 将 data.table 从长转换为宽时压缩相似的列
我正在处理纵向数据集,并以长格式 data.table 对主题进行重复观察。大多数受试者有少数(<10)次重复观察,而少数受试者有许多(>100)次观察。我可以将这个数据集从长转换为宽,如下所示,但它变得非常宽(我在每个时间点都有很多变量)并且大部分都充满了 NA,因为大多数受试者在 11 到 100 的时间没有变量数据. 有没有更优雅的方式将这些数据重铸为宽格式?我在想一些类似于其他语言中参差不齐的数组的东西......
这里存在一些解决方案,但对我来说一个大问题是对象大小:具有大量 NA 的宽矩阵占用了大量不必要的空间。
下面是具有我当前(不希望的稀疏矩阵)解决方案的 MWE。理想情况下,如果某种参差不齐的列表方法可行,则生成的对象将具有 3 行和 3 列,其中“年份”和“代码”列是列表或类似的。作为奖励,如果我可以将“代码”变量嵌套在“年份”变量中作为嵌套的不规则数组,那就太好了。
r - R reshape2 或 dplyr/tidyr:计算值在小计中的百分比
让我们以空气质量数据集为基础。
这让我简化了我的真实数据集。到目前为止,我已经这样做了:
这给了我这个:
但是,我正在尝试为每个当前数字列创建一个额外的变量“-percentage-of-days”-subtotal列。所以我的目标是这样的:
对不起,糟糕的格式!但正如您所希望看到的,新的附加列给出了当天和当月每个变量的百分比。
我发现另一个 Stack Overflow 助手建议使用 tidyr 和 dplyr,但我无法根据我的需要调整他们的示例。有人可以告诉我该怎么做吗?
r - data.table - 有效地操作大型数据集
我对 data.table 的超快速度感到惊讶。下面的代码完全符合我的需要,但是当在大表上执行时,它的性能不是很好。
确信这可以通过 data.table 更快地完成,但我不知道如何。
输出
输出需要是一个矩阵,其中行名是一个规则的天序列。分别为每一列:
- 第一个值之前的所有值都需要为 NA
- 最后一个值之后的所有值都必须是 NA
- 在第一个值和最后一个值之间需要添加 0,因为输入表中不存在
以下代码显示了结果的样子:
输入
下表显示了编码/功能的来源/输入:
代码工作
以下几行正是我需要的,而且很简单。不过效率不高。
真实表有 700 个唯一的 C 值和 200 万个 E 值。
我做了一些冗长的、不可读的、笨拙的编码,它在 35 秒内创建了包含 1.2B 个单元的矩阵。使用 data.table 必须尽可能快但更优雅,但不是这样。
r - 在R中将列转换为具有两个汇总值的行
我有一个这样的data.frame:
我想把它转换成这样的东西:
目前我正在使用dcast,如下:
dcast(stats, P ~ Stat, value.var = "V")
,这在没有“点”的情况下有效。当我添加点时,它开始使用 _1、_2 等复制新列名。
任何帮助表示赞赏。这不是一个学校项目,我只是一个好奇的顾问,试图在我感兴趣的问题上更新我的统计技能!
r - 在函数中使用 data.table 进行 dcast
我正在尝试将下面已经有效的代码变成一个函数。
类似的情况,dcast + DT,已经在这里讨论过了!但我无法解决这样的问题。
我想要实现的是:
- 只更改多行代码的两个参数,并且
- 将函数中每一行创建的对象写入工作目录
这是已经有效的代码:
我对该功能的尝试:
create.Feature <- function(col1, stat) {
和电话:
我收到以下错误: .subset2(x, i, exact = exact) 中的错误:级别 1 没有此类索引
任何人?
r - R dcast:将值/条件排除应用于小计
我有一个两部分的问题。在创建类似于我所拥有的数据集时,我们可以从空气质量数据集开始:
给我们这个:
第一个问题:如何从每个每日(全部)小计中去除风?
我确信我们打算使用dplyr
,也许完全代替dcast
,但是对于我的生活,我找不到一个展示小计排除的例子。
第二个问题:同样,我们也在尝试计算如何包含所有变量的每日平均行,不包括Temp。所以数据集看起来像这样:
在这里,Day Avg是Ozone、Solar.R和Wind的平均值——不包括Temp。
并且(all)是Ozone、Solar.R和Temp的总和——不包括Wind。
我认为这是另一种情况dplyr
,这将是一个类似的解决方案,但我想我会问这两个问题。
编辑:值得一提的是,我的真实世界数据每天“每天”有四个以上的变量,其中一些变量实际上并不每天都出现,但仍然需要包含在每日“日平均”和“(所有)' 计算,因此按名称排除变量(即Temp或Wind)而不是命名所有需要包含的变量(即Ozone和Solar.R)会更干净。
r - R dcast在创建宽格式数据时复制第一个主题
我正在尝试从长格式数据转移到宽格式数据,以便进行一些相关性分析。
但是,dcast 似乎为第一个主题创建了行,并将数据拆分到这两行中,用 NA 填充创建的空单元格。
当我使用字母数字主题代码时,前 2 个主题被复制,我去了数字主题编号,并且必须只复制第一个主题。
长格式数据框的前几行:
创建变量列表:
我的 dcast 命令:
生成的宽格式的前几行:
注意主题 1 有 2 个条目。所有其他主题似乎都是正确的
这是我的命令/参数的问题吗?dcast 中的错误?
编辑1:通过消除过程,仅当我包含“rSII”变量时才会出现额外的条目。这是根据脚本中的上一步计算的变量:
该计算变量是否有一些东西会弄乱某些科目的 dcast ?
编辑 2 以添加我的解决方法:
我最终将计算出的变量四舍五入到小数点后 3 位,这解决了问题。现在一切都在正确投射,没有重复。
r - 如何在R中创建项目频率矩阵
我正在尝试使用以下数据在 R 中构建项目频率矩阵。
我想要的只是一个表,其中唯一用户作为行,audioID 作为列。我知道我需要使用 dcast 方法来执行此操作,但无法弄清楚该怎么做。我尝试了以下代码,但我知道它不是正确的解决方案。
所需的输出是:
任何帮助都会很有用。
r - 使用 R 中的 dcast 重塑 EPA 风速和风向数据
我正在尝试将长格式风数据转换为宽格式。风速和风向都列在 Parameter.Name 列中。这些值需要由 Local.Site.Name 和 Date.Local 变量转换。
如果每个唯一的 Local.Site.Name + Date.Local 行有多个观察值,那么我想要这些观察值的平均值。内置参数“fun.aggregate = mean”适用于风速,但无法以这种方式计算平均风向,因为值以度为单位。例如,靠近北 (350, 10) 的两个风向的平均值将输出为南 (180)。例如:((350 + 10)/2 = 180),尽管极坐标平均值为 360 或 0。
“圆形”包将允许我们计算平均风向而无需执行任何三角函数,但我在尝试将这个附加函数嵌套在“fun.aggregate”参数中时遇到了麻烦。我认为一个简单的 else if 语句可以解决问题,但我遇到了以下错误:
目标是能够使用fun.aggregate = mean
风速,但mean(circular(Wind Direction, units = 'degrees')
风向。
这是原始数据(>100MB): https ://drive.google.com/open?id=0By6o_bZ8CGwuUUhGdk9ONTgtT0E
这是数据的子集(第 100 行): https ://drive.google.com/open?id=0By6o_bZ8CGwucVZGT0pBQlFzT2M
这是我的脚本:
任何帮助将不胜感激!
-spacedSparking
编辑:这是解决方案:
r - R:融化和Dcast
我有一个这样的数据集:
这导致:
我想将其转换为:
到目前为止,我的方法是融合数据和后来的 Dcast:
但我没有得到想要的输出,而是得到: