[英]Calculate correlation between columns on multiple data frames
我正在尝试制作一个将多个csv文件读入数据帧的函数,检查有多少个完整(无NA)观测值,然后检查完整观测值的数量是否大于传递给该阈值的阈值该函数作为参数,返回一个向量,该向量具有每个数据框中符合条件的两列之间的相关性。
现在我有以下代码:
> dput(corr)
function (threshold = 0, directory = "/Users/marsh/datasciencecoursera/specdata/")
{
setwd(directory)
data_files <- list.files()
output <- c()
for (i in data_files) {
raw_data <- read.csv(data_files[i])
raw_data_nona <- na.omit(raw_data)
if (nrow(raw_data_nona) > threshold) {
sulfate <- raw_data_nona[, "sulfate"]
nitrate <- raw_data_nona[, "nitrate"]
correlation <- cor(sulfate, y = nitrate)
ouput <- c(ouput, correlation)
}
}
ouput
}
当我尝试以150、200、400等阈值运行代码时,出现一条错误消息,内容为:
Error in file(file, "rt") : cannot open the connection In addition: Warning message:
In file(file, "rt") : cannot open file 'NA': No such file or directory
我不确定发生了什么问题。 我检查了目录是否正确无数次,并且在逐行输入方式在控制台中逐行运行代码时,有时它可以正常工作。 对于为什么该功能似乎无法连接到文件的任何帮助,将不胜感激。
我认为您的问题出在以下两行:
for (i in data_files) {
raw_data <- read.csv(data_files[i])
我假设data_files
是文件名的向量,例如c("data1.csv", "data2.csv")
。 然后在for循环中的每次迭代中, i
将是一个类似于"data1.csv"
的字符串。 您似乎希望它是一个数字,即当前位置的索引。 您不需要索引回data_files
,就已经有了字符串,因此只需执行以下操作:
for (i in data_files) {
raw_data <- read.csv(i)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.