r - 通过R中的几个条件将多行合并为一行
问题描述
我正在尝试将多行合并为一行。我希望将所有样本Group.1
与其对应Group.2
的cqs
数据合并到一行中lot_number
。
Group.1
重要细节:我在列中有三种不同的样本类型。我认为我遇到的困难是我需要将三种不同的样本类型合并到一行中lot_number
。我知道的很多工具只合并两个数据表或框架。
是)我有的:
第 1 组 | 第 2 组 | 批号 | |
---|---|---|---|
1xLOD_2234567 | MS2 | 39 | 2234567 |
NC_2234567 | MS2 | 37 | 2234567 |
我需要的:
第 1 组 | 第 2 组 | 批号 | (新上校) | (新上校) | (新上校) | |
---|---|---|---|---|---|---|
1xLOD_2234567 | MS2 | 39 | 2234567 | NC_2234567 | MS2 | 37 |
这些是我希望按批号匹配的不同浓度水平的溶液。我试过这样的想法:
aggtest2 <- reshape(aggtest2, idvar = "lot_number", timevar = "Group.2", direction = "wide"
和
aggtest0 <- reshape(aggtest2, idvar = c("lot_number","Group.2"), direction = "wide")
我也尝试了下面两条评论中的建议。我只是无法想出一个解决方案来保留所有数据并将其全部保存在自己的单元格中。任何帮助是极大的赞赏。
解决方案
我们可以用pivot_wider
library(dplyr)
library(tidyr)
library(data.table)
aggtest2 %>%
mutate(rn = rowid(Group.2, lot_number)) %>%
pivot_wider(names_from = rn, values_from = c(Group.1, cqs))
# A tibble: 1 x 6
# Group.2 lot_number Group.1_1 Group.1_2 cqs_1 cqs_2
# <chr> <int> <chr> <chr> <int> <int>
#1 MS2 2234567 1xLOD_2234567 NC_2234567 39 37
数据
aggtest2 <- structure(list(Group.1 = c("1xLOD_2234567", "NC_2234567"),
Group.2 = c("MS2",
"MS2"), cqs = c(39L, 37L), lot_number = c(2234567L, 2234567L)),
class = "data.frame", row.names = c(NA,
-2L))
推荐阅读
- python - 循环字典并添加一些东西
- reactjs - 将一个类传递给 React 组件,以便它可以创建所述类的新实例?
- machine-learning - 分类平衡目标 y [0,1] 但不平衡特征 x [many 0 , few 1s] ,最大化精度
- powershell - 将域中最后更改密码的每个用户的 PowerShell 结果导出为 CSV
- java - 我在适用于 Android 的 Windows 子系统(Windows 11)上测试了我的应用程序,它给了我一堆“更新颜色缓冲区”日志
- c++ - 是 std::decay_t
衰减复制(T&&)等价于自动衰减复制(自动&&)? - javascript - 将 ember js 应用程序与反应主机连接:微前端
- javascript - JS:如何在 insertBefore() 之后得到通知?
- apache-kafka - 使用 filebeat 输出 azure eventthub 服务
- ios - Swift 线程安全数组