繁体   English   中英

计算多个数据帧上列之间的相关性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM