【发布时间】:2016-12-30 00:31:14
【问题描述】:
我有一个非常简单的 R 问题,但我似乎找不到合适的解决方案。假设我们有以下数据框:
groupid<-rep(1:5, each=3)
names<-rep(c("Bill", "Jim", "Sarah", "Mike", "Jennifer"),3)
test1<-rep(c(90, 70, 90, NA, 100),3)
test2<-rep(c(80, NA, 92, 80, 65), 3)
testscores<-data.frame(groupid, names, test1, test2)
groupid names test1 test2
1 1 Bill 90 80
2 1 Jim 70 NA
3 1 Sarah 90 92
4 1 Mike NA 80
5 1 Jennifer 100 65
6 2 Bill 90 80
7 2 Jim 70 NA
8 2 Sarah 90 92
9 2 Mike NA 80
10 2 Jennifer 100 65
11 3 Bill 90 80
12 3 Jim 70 NA
13 3 Sarah 90 92
14 3 Mike NA 80
15 3 Jennifer 100 65
我们有兴趣为每个测试获取跨行的平均值(在数据框中添加一个额外的列),忽略 NA 值。例如,“Jim”的平均值为 70,“Mike”的平均值为 80。所有其他人的平均值都是正常的。
我尝试使用 plyr 包中的转换,但它似乎无法适应 NA 问题。
【问题讨论】:
-
看
rowMeans设置na.rm=TRUE -
好的,我确实看过...没看到你可以通过'na.rm'。谢谢大卫!
标签: r