gpt4 book ai didi

r - 折叠数据框中的列 (R)

转载 作者:行者123 更新时间:2023-12-03 20:17:55 26 4
gpt4 key购买 nike

基本上,我有一个数据框,df

                  Beginning1 Protein2    Protein3    Protein4    Biomarker1
Pathway3 A G NA NA F
Pathway8 Z G NA NA E
Pathway9 A G Z H F
Pathway6 Y G Z H E
Pathway2 A G D NA F
Pathway5 Q G D NA E
Pathway1 A D K NA F
Pathway7 A B C D F
Pathway4 V B C D E

我想组合数据框,以便从“Protein2”到“Protein4”相同的那些行是浓缩的,给出以下内容:
            Beginning1 Protein2     Protein3     Protein4     Biomarker1
Pathway3 A,Z G NA NA F,E
Pathway9 A,Y G Z H F,E
Pathway2 A,Q G D NA F,E
Pathway1 A D K NA F
Pathway7 A,V B C D F,E

这与我之前提出的问题 ( Consolidating duplicate rows in a dataframe ) 非常相似,但不同之处在于我还合并了“Beginning1”行。

到目前为止,我已经尝试过:
library(dat.table)
dat<-data.table(df)

Total_collapse <- dat[, .(
Biomarker1 = paste0(Biomarker1, collapse = ", ")),
by = .(Beginning1, Protein1, Protein2, Protein3)]

Total_collapse <- dat[, .(
Beginning1 = paste0(Beginning1, collapse = ", ")),
by = .(Protein1, Protein2, Protein3)]

这给出了输出:
            Beginning1  Protein2    Protein3      Protein4      Biomarker1
Pathway3 G NA NA F,E
Pathway9 G Z H F,E
Pathway2 G D NA F,E
Pathway1 D K NA F
Pathway7 B C D F,E

有谁知道如何解决这个问题?我也尝试从 Collapse / concatenate / aggregate a column to a single comma separated string within each group 复制解决方案,但没有成功。

如果这是一个简单的错误,我很抱歉 - 我对 R 很陌生。

最佳答案

这是使用 dplyr 的可能解决方案

df %>% group_by_at(vars(Protein2:Protein4)) %>%
summarize_all(paste, collapse=",")

关于r - 折叠数据框中的列 (R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45310474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com