【发布时间】:2018-01-06 10:47:15
【问题描述】:
我是编程新手,目前正在编写一个函数来遍历工作目录中的数百个 csv 文件。
文件中有大量的 NA 值。
该函数(我称之为 corr)有两个参数,目录和一个阈值(长度为 1 的数字向量,表示完整案例的数量)。
该函数的目的是获取硫酸盐和硝酸盐两列(电子表格中的第二列和第三列)的完整案例,如果完整案例的数量大于阈值参数,则计算它们之间的相关性。
如果满足阈值要求,函数应该返回一个具有相关性的向量(默认阈值为 0)。
当我运行代码时,我得到以下两个:
- 控制台中的+号
或
2.找不到我在函数中创建的对象。
任何帮助将不胜感激。提前谢谢!
corr <- function(directory, threshold=0){
filelist2<- data.frame(list.files(path=directory,
pattern=".csv", full.names=TRUE))
corvector <- numeric()
for(i in 1:length(filelist2)){
data <-data.frame(read.csv(filelist2[i]))
removedNA<-complete.cases(data)
newdata<-data[removedNA,2:3]
if(nrow(removedNA) > threshold){
corvector<-c(corvector, cor(data$sulfate, data$nitrate ))
}
}
corvector
}
【问题讨论】:
-
控制台中的
+符号表示 R 正在等待更多输入来完成表达式 - 这通常意味着您尚未在某处关闭括号/花括号。 -
函数内部定义的对象在该范围之外将不可用。例如试试
f = function() local.object = 1; f(); local.object -
@dww 在 OP 示例中的函数外部调用了哪个对象?
-
@Richard OP 声明“找不到我在函数中创建的对象”。任何人都可以猜测 OP 试图访问哪些对象