我正在编写一个函数来在一个数据框中加载几个csv文件。 然后,我根据列ID中的特定值过滤掉行。
然后,我打算从过滤后的数据框中找到硫酸盐/硝酸盐柱的平均值。但是我收到了标题中提到的错误。我的代码是,
function(directory,pollutant,id=1:332)
{
wd<-getwd()
if(wd %in% "C:/Users/Hp/Documents/specdata")
{}
else
{
setwd(directory)
}
temp<-list.files(pattern="*.csv")
myData<- lapply(temp,read.csv)
filtermyData<-subset(myData,myData$ID %in% id)
if(pollutant %in% "sulfate")
{
meanSulfate<-mean(filtermyData$sulfate,na.rm=TRUE)
meanSulfate
}
else
{
meanNitrate<-mean(filtermyData$nitrate,na.rm=TRUE)
meanNitrate
}
}
答案 0 :(得分:0)
使用[和$子集返回一个data.frame。尝试使用向量mean(filtermyData[['nitrate']],na.rm=T)
它对我有用。