来自单独数据集的两个对应列之间的相关性
Correlation between two corresponding columns from seperate datasets
我有两组数据,其中包含具有相同名称的列,但这些列中的值不同。例如:
m1 <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE,
dimnames = list(c("s1", "s2", "s3"),c("cow", "dog","cat")))
m2 <- matrix(1:9, nrow = 3, ncol = 3, byrow = FALSE,
dimnames = list(c("s1", "s2", "s3"),c("dog", "cow","cat")))
> m1
cow dog cat
s1 1 2 3
s2 4 5 6
s3 7 8 9
> m2
dog cow cat
s1 1 4 7
s2 2 5 8
s3 3 6 9
我想使用 cor.test() 创建一个函数来计算相应列之间的相关性。例如。牛对牛,狗对狗。使用 cor.test() 的原因是我想获得相关系数和 p 值。所以,如果有其他方法可以获得这些信息,我也愿意接受。实际数据集有几千列,是随机组织的,所以我想找一种方法先匹配列,然后计算相关性。有任何想法吗?
这是一个解决方案,在公共列上使用 lapply
:
# Common columns
cols <- intersect(colnames(m1), colnames(m2))
# For each column, compute cor test
res <- lapply(cols, function(x) cor.test(
m1[, x],
m2[, x]
))
names(res) <- cols
结果是您可以通过这种方式访问的 htest
个对象的列表:res[["cow"]]
我有两组数据,其中包含具有相同名称的列,但这些列中的值不同。例如:
m1 <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE,
dimnames = list(c("s1", "s2", "s3"),c("cow", "dog","cat")))
m2 <- matrix(1:9, nrow = 3, ncol = 3, byrow = FALSE,
dimnames = list(c("s1", "s2", "s3"),c("dog", "cow","cat")))
> m1
cow dog cat
s1 1 2 3
s2 4 5 6
s3 7 8 9
> m2
dog cow cat
s1 1 4 7
s2 2 5 8
s3 3 6 9
我想使用 cor.test() 创建一个函数来计算相应列之间的相关性。例如。牛对牛,狗对狗。使用 cor.test() 的原因是我想获得相关系数和 p 值。所以,如果有其他方法可以获得这些信息,我也愿意接受。实际数据集有几千列,是随机组织的,所以我想找一种方法先匹配列,然后计算相关性。有任何想法吗?
这是一个解决方案,在公共列上使用 lapply
:
# Common columns
cols <- intersect(colnames(m1), colnames(m2))
# For each column, compute cor test
res <- lapply(cols, function(x) cor.test(
m1[, x],
m2[, x]
))
names(res) <- cols
结果是您可以通过这种方式访问的 htest
个对象的列表:res[["cow"]]