我想计算列范围的rowMeans,但我不能给出colnames(例如c(C1,C3))或范围(例如C1:C3)的硬编码值,因为名称和范围都是可变的。我的 df 看起来像:
> df
chr name age MGW.1 MGW.2 MGW.3 HEL.1 HEL.2 HEL.3
1 123 abc 12 10.00 19 18.00 12 13.00 -14
2 234 bvf 24 -13.29 13 -3.02 12 -0.12 24
3 376 bxc 17 -6.95 10 -18.00 15 4.00 -4
这只是一个示例,实际上我的列范围在 MGW.1 ... MGW.196 等。在这里,我不想给出确切的 colnames 或确切的范围,而是要传递 colnames 的首字母,并希望获得具有该首字母的所有列的平均值。就像是:MGW=rowMeans(df[,MGW.*]), HEL=rowMeans(df[,HEL.*])
所以我的最终输出应该是这样的:
> df
chr name age MGW Hel
1 123 abc 12 10.00 19
2 234 bvf 24 13.29 13
3 376 bxc 17 -6.95 10
我知道这些价值观是不正确的,但这只是为了给你和想法。其次,我想从除前 3 个值之外的整行中包含 NA 的数据框中删除所有这些行。
这是示例示例的 dput:
> dput(df)
structure(list(chr = c(123L, 234L, 376L), name = structure(1:3, .Label = c("abc",
"bvf", "bxc"), class = "factor"), age = c(12L, 24L, 17L), MGW.1 = c(10,
-13.29, -6.95), MGW.2 = c(19L, 13L, 10L), MGW.3 = c(18, -3.02,
-18), HEL.1 = c(12L, 12L, 15L), HEL.2 = c(13, -0.12, 4), HEL.3 = c(-14L,
24L, -4L)), .Names = c("chr", "name", "age", "MGW.1", "MGW.2",
"MGW.3", "HEL.1", "HEL.2", "HEL.3"), class = "data.frame", row.names = c(NA,
-3L))