我在函数内部使用 for 循环创建了一个对象,但在尝试打印时出现错误:找不到打印对象

2024-02-23

我在如下所示的循环中创建了一个对象 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(使用前将#替换为@)

我在函数内部使用 for 循环创建了一个对象,但在尝试打印时出现错误:找不到打印对象 的相关文章

随机推荐