如何使用多个列的值聚合数据框中的多个列

ML33M

有关聚合的另一个初学者问题

我想使用多个列的值聚合框中的多个列。是的,我以前看过类似的文章。但是我认为这里的区别是我试图基于多个列进行聚合。

例如我的数据框:

column1 column2 column3 V1  V2
A       a        7      90  600
A       a        7      90  600
A       b        7      80  600
A       b        6      70  5000
A       b        6      70  5000
....

汇总并求和V1和V2中的数字:

column1 column2 column3 V1  V2
A       a        7      180 1200
A       b        7      80  600
A       b        6      140 10000
....

这是我最小化的数据和代码:

#generate minimal sample data
column1 <- c("S104259","S2914138" ,"S999706","S1041120",
         rep("S1042529",6), rep('S1235729',4))
column2 <- c("  T6-R190116","T2-R190213" ,"T8-R190118",
         rep("T8-R190118",3), rep('T2-R190118',3),rep('T6-R200118',4),'T1-R200118')
column3 <- c(rep("3S_DMSO",7),rep("uns_DMSO",5),rep("3s_DMSO",2))
output_1 <- c(664,292,1158,574,38,0,2850,18,74,8,10,0,664,30)
output_2 <- c(364,34,0,74,8,0,850,8,7,8,310,0,64,380)
df <-data.frame(column1,column2,column3,output_1,output_2)

#aggregate data by the same value in  column 1, 2 and 3

new_df <- aggregate(cbind(df$output_1,df$output_2), by=list(Category=df$column1), FUN=sum)

write.table(new_df, file = "aggregatedDMSO.txt",sep="\t", row.names = F, col.names = T)

所以

  1. 如何将第1、2和3列同时传递到列表中?我试过&他们在一起,但没有用。
  2. 第二个贪婪的问题:我的真实数据集将有很多列的输出,除了对所有名称进行绑定硬编码之外,还有其他方法吗?(是的,在某些情况下我可以df[,all columns from a certain index],但是其他时候我可能需要省略几列)

谢谢ML

迪米特里奥斯·扎哈拉托斯(Dimitrios Zacharatos)

我始终喜欢使用基本软件包和预装有R的软件包。但是在聚合方面,由于其灵活性,我更喜欢ddply方法。您可以使用平均值和sd或您选择的任何描述性进行汇总。

column1<-c("S104259","S2914138","S999706","S1041120",rep("S1042529",6),rep('S1235729',4))
column2<-c("T6-R190116","T2-R190213","T8-R190118",rep("T8-R190118",3),rep('T2-R190118',3),rep('T6-R200118',4),'T1-R200118')
column3<-c(rep("3S_DMSO",7),rep("uns_DMSO",5),rep("3s_DMSO",2))
output_1<-c(664,292,1158,574,38,0,2850,18,74,8,10,0,664,30)
output_2<-c(364,34,0,74,8,0,850,8,7,8,310,0,64,380)
df<-data.frame(column1,column2,column3,output_1,output_2)

library(plyr)
factornames<-c("column1","column2","column3")
plyr::ddply(df,factornames,plyr::numcolwise(mean,na.rm=TRUE))
plyr::ddply(df,factornames,plyr::numcolwise(sum,na.rm=TRUE))
plyr::ddply(df,factornames,plyr::numcolwise(sd,na.rm=TRUE))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何基于R中的多个列聚合数据帧?

根据自定义函数聚合数据框中的多个列

使用多个ID按因子列聚合混合数据

基于R中的列值聚合数据框

R:如何使用索引列聚合数据框?

通过另一列的值聚合数据框中的列?

Pandas:基于列值聚合数据框

R根据列值聚合数据框

如何使用Featuretools在单个数据框中按列值从多个列创建要素?

聚合数据框中的一列

如何使用循环从多个熊猫数据框中删除列?

如何使用python在单个数据框中查找具有多个公共值的列

如何在数据框中获得多个聚合?cumsum 和 count 列

使用单独的类别向量聚合数据框中的列

如何基于多个列上多个条件的组合为数据框中的新列分配值

如何用多个数据框列的值替换列中的值

根据多个列中的值创建新的数据框列

使用Pandas GroupBy从多个列中聚合唯一值

如何使用 dplyr 聚合数据帧的多列

如何聚合火花数据框中 2 列的值

根据Scala中的另一列聚合数据框列中的数据

如何将数据框的一列中的值列表均等地分为多个列

如何检查两个数据框(熊猫)中多个列的列值?

如何使用dplyr在R中使用值转换数据框跨多个列更改值

在数据框中的多个列中检查相同的值

使用一列中的多个值过滤数据框中的值

使用重新采样为熊猫数据框中的不同列使用不同规则聚合数据

SQL在一个列中聚合多个值,然后在数据透视表中聚合

替换数据框的多个特定列中的值