我在如下所示的循环中创建了一个对象 obs,并且循环返回 obs。但是,当我尝试打印 obs 时,我收到一条消息:未找到 obs。我是 R 编程新手,我迷路了。我尝试用谷歌搜索这个问题,但没有找到答案。
complete<-function(directory,ID){
files_list <- list.files( directory , full.names=TRUE) #creates a list of files
dat <- data.frame() #creates an empty data frame
for (i in 1:332) { #loops through the files, rbinding them together
dat <- rbind(dat, read.csv(files_list[i]))
}
cleandat<-na.omit(dat)
obs<-c()
for(i in ID){
n<-nrow(cleandat[cleandat$ID %in% i,])
obs<-append(obs,n)
}
return(obs)
}
complete("specdata", ID<-c(2,4,8,10,12))
[1] 1041 474 192 148 96
print(obs)
Error in print(obs) : object 'obs' not found
函数中定义的对象在函数外部不可用。如果从函数返回一个值,则必须将结果存储在某处。尝试
obs <- complete("specdata", ID<-c(2,4,8,10,12))
print(obs)
这可以防止您必须知道函数内可能不是您自己编写的变量的名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)