Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想从R中的几个文件中找出一列的平均值_R - Fatal编程技术网

我想从R中的几个文件中找出一列的平均值

我想从R中的几个文件中找出一列的平均值,r,R,这是我的代码,它为任何输入提供NA。请帮我知道我哪里做错了。(我是初学者) pollutanmean最终您需要: fname <- sprintf("%s/%03d.csv", directory, id) ldf <- lapply(fname, read.csv) my.mean <- function(df, pollutant) mean(df[, pollutant], na.rm=TRUE) pollutant <- "nitrate" # or "su

这是我的代码,它为任何输入提供NA。请帮我知道我哪里做错了。(我是初学者)

pollutanmean最终您需要:

fname <- sprintf("%s/%03d.csv", directory, id)
ldf <- lapply(fname, read.csv)

my.mean <- function(df, pollutant) mean(df[, pollutant], na.rm=TRUE)

pollutant <- "nitrate"  # or "sulfate"
sapply(ldf, my.mean, pollutant) # or
mean(sapply(ldf, my.mean, pollutant))

最好不要使用
print()
从函数返回值。嘿!事实上,我想要所有文件中列的一个平均值。上面的代码给出了每个文件列的平均值。@Sonalizha我编辑了我的答案。请对更改进行评论。如果文件长度不同,
sappy
将返回一个列表,并且
mean(sappy(ldf,[[],污染物),na.rm=TRUE)
抛出一个错误。我想您还需要和unlist来处理:
mean(unlist(sappy(ldf,[],污染物)),na.rm=TRUE)
。如果我们知道所有文件的长度都相同,那么连接平均值的平均值当然就是单个文件的平均值means@dww谢谢你的评论。你是对的。我会编辑我的答案。
fname <- sprintf("%s/%03d.csv", directory, id)
ldf <- lapply(fname, read.csv)

my.mean <- function(df, pollutant) mean(df[, pollutant], na.rm=TRUE)

pollutant <- "nitrate"  # or "sulfate"
sapply(ldf, my.mean, pollutant) # or
mean(sapply(ldf, my.mean, pollutant))
mean(unlist(sapply(ldf, '[[', pollutant), na.rm=TRUE))