【发布时间】:2019-06-07 20:38:01
【问题描述】:
我有一个数据框,其中组的大小不同,但我想在新列中对行求和并除以 n(存在的整数数)(V1 .mean)
我们需要选择列号(在本例中为 [10:18]),除非有办法通过名称来完成。如果是这样,一定要教我,因为我必须像这样转换 8 个问题(x9)(参见下面的示例)。
所以我尝试了这个:
df$v1.mean <- rowSums(cbind(df[10:18]), na.rm = T ) / # sums it up
ncol(is.integer(cbind(df[10:18] ))) # sums integers, but no
我看到了this dplyr 的例子,但我不确定如何让它在tally() 中工作
数据框看起来像这样,V1.mean是我正在寻找的解决方案。
V1.1 V1.2 V1.3 V1.4 V1.5 V1.6 V1.7 V1.8 V1.9 V2.1 | V1.mean V2.mean
1 5 4 5 NA NA NA NA NA NA 5 | 4.67 [== (5+4+5)/3]
2 5 5 5 NA NA NA NA NA NA 3
3 5 5 5 5 NA NA NA NA NA ...
4 5 4 5 NA NA NA NA NA NA ...
5 5 5 NA NA NA NA NA NA NA ...
6 5 5 5 5 NA NA NA NA NA ...
7 5 5 5 4 4 NA NA NA NA ...
8 5 5 5 4 5 5 NA NA NA ... | 4.83 [== (5+5+5+4+5+5)/6]
9 4 5 5 5 4 NA NA NA NA ...
10 5 5 5 NA NA NA NA NA NA ...
提前致谢:)
【问题讨论】:
-
你试过
rowMeans(df, na.rm = TRUE) -
rowMeans(df[grep('V1',names(df)], na.rm = TRUE)
标签: r dataframe dplyr tidyverse