【发布时间】:2018-04-28 04:16:01
【问题描述】:
我正在尝试查找某些列中值的平均值,并将其附加到新列中。
我有一个包含字符元素列表的变量,这些元素对应于某些列名。例如,
qcs <- list.files(qcDirectory)
str(qcs)
chr [1:5] "201701" "201702" "201703" "201704"
这是一个示例数据表:
201701 201702 201703 201704
row1 12 20 50 54
row2 15 23 45 35
row3 16 20 52 58
row4 17 13 47 48
例如,我想获取名为“201701”和“201702”的列中包含的值的平均值,因此预期输出将是:
201701 201702 201703 201704 mean
row1 12 20 50 54 16
row2 15 23 45 35 19
row3 16 20 52 58 18
row4 17 13 47 48 15
我不能只将它应用于前 x 列,因为它们可能出现在表中的任何位置。我在想 lapply 可能是要走的路,但我不确定如何让它发挥作用。用简单的英语来说,我基本上希望函数是“对于包含在这个变量 [qcs] 中的所有列名,找到这些值的平均值。”不确定我是否需要某种循环,或者什么。我确信答案已经存在,但我是个菜鸟,在尝试应用类似的帖子时遇到了麻烦,例如 this 和 this。我在想一些类似于我下面的东西,它可以成功识别要操作的正确列,但这只是平均每列中的值并输出一个列表,而不是平均相关列的行和将它们放入一个新列中。任何想法表示赞赏。
sapply(colnames(datamatrix), function(c) {
if (c %in% qcs) datamatrix$mean = mean(test1[, c])
})
【问题讨论】:
标签: r