【发布时间】:2019-11-22 15:55:49
【问题描述】:
我想对具有重复样本 ID 的样本的数值列进行平均,而不丢失字符串列。
我已经设法使用聚合函数对重复的样本 ID 取平均值,但首先我必须从数据集中删除非数字列才能使其正常工作。我想保留这些描述性的列。
创建一个假数据集:
ID<-c("QYZ","MMM","QYZ","bb2","gm6","gm6","YOU","LLL","LLL","LLL")
values<-c(1,2,4,5,5,6,8,9,6,4)
Levels<-c("A","B","A","C",'D','D',"C","y","y","y")
Exampledata<-data.frame(ID,values,Levels)
这是我尝试过的代码:
Exampledata2<- aggregate(Exampledata[,-3], by = list(Exampledata$ID), mean, na.rm=TRUE)
Exampledata2 在代码之后是这样的:
Group.1 ID values
bb2 NA 5.000000
gm6 NA 5.500000
LLL NA 6.333333
MMM NA 2.000000
QYZ NA 2.500000
YOU NA 8.000000
但我希望它看起来像这样:
ID values Levels
MMM 2 B
QYZ 2.5 A
bb2 5 C
gm6 5.5 D
YOU 8 C
LLL 6.33 y
请注意,重复的样本 ID 之间的级别是相同的。
【问题讨论】:
标签: r aggregate mean categorical-data