r - 将多行记录合并为一行
问题描述
我想按如下方式操作R中的数据,有人可以帮忙吗?
前:
Record Person Value
1 1 100
1 2 0
1 3 200
2 1 150
2 2 220
后:
Record Value
1 {100, 0, 200}
2 {150, 220}
理想情况下,我希望最终数据集值位于列表中(而不是字符串),以便我可以将公式应用于每个值。
提前谢谢了。
解决方案
你可以试试下面的代码
dfout <- aggregate(Value~Record, df, toString)
或者
dfout<- aggregate(Value~Record, df,FUN = function(x) x)
这样
> dfout
Record Value
1 1 100, 0, 200
2 2 150, 220
数据
df <- structure(list(Record = c(1L, 1L, 1L, 2L, 2L), Person = c(1L,
2L, 3L, 1L, 2L), Value = c(100L, 0L, 200L, 150L, 220L)), class = "data.frame", row.names = c(NA,
-5L))
推荐阅读
- c# - 除了多个 if 语句之外,是否有更优雅的方法来为多个被检查的复选框编写逻辑?
- dictionary - 如果键是列表,则在 Dart 映射中搜索键
- python - 使用 python flask 在同一页面中显示结果
- javascript - 调用服务器集线器方法失败
- javascript - 我正在尝试使用一些带有 codeceptjs 的本机 puppeteer 来使用其 ID 查找元素的所有方面
- c - 如何将 32 位打包成 4x8 位?
- c++ - 从源代码构建 UE4 - Mathcalls 语法错误
- sql - plpgsql 函数会产生巨大的性能开销
- php - 如何在 magento 2 phpunit 测试中进行依赖注入
- php - 未定义索引:PHP 7.2.1 中的 file_upload