我想为许多数据框做关联
I want to do correlation for many data frame
我有将近 13 个文件,我想对其进行三种类型的关联。
除了值之外,所有文件都具有相同的内容。
例如:
v1 v2 v3 v4 v5 v6 v7 v8 .................. v50
v6 和 v20 之间的第一次校正
v7 和 v21 之间的第二相关性
v8 和 v22 之间的第三个相关性
我的数据有缺失值。
为每个文件手动执行会导致脚本太长,我想为所有文件执行循环功能(不幸的是我不是循环功能的专家,我尝试了很多)我需要帮助
如果'd1', 'd2', ...'d13'是数据集并且列的顺序相同,我们可以将数据集放在list
并获取指定列的 cor
。 ?cor
中有一些选项可以在存在缺失值的情况下计算协方差。在这里,我使用了na.or.complete
。我们可以根据需要进行更改。
lapply(mget(paste0('d', 1:13)), function(x)
diag(cor(x[,6:8], x[,20:22], use='na.or.complete')))
直接将文件读入 list
可能比在全局环境中创建单个 data.frame
对象更好。假设文件都在工作目录下。
files <- list.files(pattern='file\d+.txt')#change the pattern as needed
lapply(files, function(x) {
x1 <- read.table(x, header=TRUE)
diag(cor(x1[,6:8], x1[,20:22], use = 'na.or.complete'))})
这是一个强力版本(包括数据生成),它可能适合您的目的,关于您的 data/task 结构的更多信息可能有助于提高效率:
N <- 10
k <- 50
d <- data.frame(matrix(runif(N * k), ncol = k))
sapply(20:k, function(col) cor(d[,col - 14], d[,col]))
编辑:问题已编辑,我不确定这是否真的是您现在想要的。
我有将近 13 个文件,我想对其进行三种类型的关联。 除了值之外,所有文件都具有相同的内容。
例如:
v1 v2 v3 v4 v5 v6 v7 v8 .................. v50
v6 和 v20 之间的第一次校正 v7 和 v21 之间的第二相关性 v8 和 v22 之间的第三个相关性
我的数据有缺失值。
为每个文件手动执行会导致脚本太长,我想为所有文件执行循环功能(不幸的是我不是循环功能的专家,我尝试了很多)我需要帮助
如果'd1', 'd2', ...'d13'是数据集并且列的顺序相同,我们可以将数据集放在list
并获取指定列的 cor
。 ?cor
中有一些选项可以在存在缺失值的情况下计算协方差。在这里,我使用了na.or.complete
。我们可以根据需要进行更改。
lapply(mget(paste0('d', 1:13)), function(x)
diag(cor(x[,6:8], x[,20:22], use='na.or.complete')))
直接将文件读入 list
可能比在全局环境中创建单个 data.frame
对象更好。假设文件都在工作目录下。
files <- list.files(pattern='file\d+.txt')#change the pattern as needed
lapply(files, function(x) {
x1 <- read.table(x, header=TRUE)
diag(cor(x1[,6:8], x1[,20:22], use = 'na.or.complete'))})
这是一个强力版本(包括数据生成),它可能适合您的目的,关于您的 data/task 结构的更多信息可能有助于提高效率:
N <- 10
k <- 50
d <- data.frame(matrix(runif(N * k), ncol = k))
sapply(20:k, function(col) cor(d[,col - 14], d[,col]))
编辑:问题已编辑,我不确定这是否真的是您现在想要的。