【发布时间】:2019-06-07 00:01:11
【问题描述】:
我正在尝试将 n 个 csv 表中的相同命名列组合成一个向量,然后我可以求出向量的平均值并获得一个值。
相反,我似乎得到了一个数字向量的向量(我们称之为 Lo)。因此,当我在 Lo 上调用 mean 函数时,我会得到每个列的均值。
下面是(1)中描述的响应代码
p <- list.files(getwd(), full.names = TRUE)[1:10]
Re <- c()
for(i in p) {
Lo <- read.csv(i, header = TRUE)
Zo <- na.omit(Lo$sulfate)
An <- c(Re, Zo)
print(mean(An)
}
我没有收到错误消息。我应该只得到一个平均值,#但是我得到了每张纸的 $sulfate 列的平均值。
#[1] 3.880701
#[1] 4.460811
#[1] 4.327613
#[1] 4.214956
#[1] 4.210072
#[1] 4.102132
#[1] 3.820059
#[1] 4.781354
#[1] 3.645644
#[1] 0.6243649
【问题讨论】:
-
您正在打印循环内的平均值。所以它会打印第 i 项的平均值,然后转到下一个第 i 项,打印平均值,然后转到下一个,以此类推。如果我理解正确的话,您需要将中间均值存储在一个列表中,然后在循环之外计算总体均值。
标签: r for-loop vector multiple-columns