【发布时间】:2015-08-17 14:49:25
【问题描述】:
下面是代码。似乎我没有设法正确定义向量“nobs”、“cor”,并且 if 语句试图评估 NA 值。 有人可以指出我的错误吗? 谢谢, 塔米尔
corr<-function(directory, threshold=0){
allfiles<-list.files("specdata", full.names = TRUE)
NumOfFiles<-length(allfiles)
n<-1
id<-vector()
nobs<-vector()
cor<-vector()
for (i in NumOfFiles){
data<-read.csv(allfiles[i])
cleandata<-data[complete.cases(data),]
id[n]=i
nobs[n]<-sum(complete.cases(data)) #Number of completre cases
n<-n+1
if (nobs[n]>threshold){
cor[n]<-cor(cleandata[sulfate],cleandata[nitrate])
}
}
return(cor)
}
【问题讨论】:
-
你的代码,就目前而言,是错误的。使其可重现。
-
为了帮助您朝着正确的方向前进: 1. 您不是在迭代向量。 2.您使用变量进行索引(n和i),然后增加n然后尝试访问存储在该位置的数据。 3 你使用一个基函数的名字(
cor)作为变量名)。 4. 您错误地访问了数据框的列。
标签: r if-statement