关联R中的两个数据集,而不是两者中的主题

时间:2014-07-29 12:59:31

标签: r correlation

对R来说还是一个新手,并且对执行相关性有疑问。我有两个我想要关联的数据集。假设为了简单起见,我将集合Data1和Data2命名为。大多数受试者都是两组,但有些科目不是。这是一个问题,因为我现在有不均匀的数据集无法关联。如何告诉R忽略不在两个数据集中的主题,以便我可以执行相关性?我知道有可能让R在同一个命令中忽略这些主题,我要求它关联我的设置。

此外,如果我希望R仅使用第1列中的主题ID关联列4:7,例如,我将使用命令cor.test(Data1 [1,4:7],Data2 [1,4: 7])?

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

免责声明:未进行测试,因为没有提供MWE。

尝试这样的事情:

cor.test(subset(x=Data1, subset=ID==1, select=4:7), subset(x=Data2, subset=ID==1, select=4:7))

答案 1 :(得分:0)

尝试:

数据

 dat1 <-  structure(list(V1 = c(9L, 2L, 5L, 9L, 9L), V2 = c(8L, 4L, 7L, 
 9L, 6L), V3 = c(4L, 5L, 7L, 7L, 8L), V4 = c(7L, 4L, 6L, 7L, 1L
 ), V5 = c(9L, 2L, 10L, 7L, 10L), subject = 1:5), .Names = c("V1", 
 "V2", "V3", "V4", "V5", "subject"), row.names = c(NA, -5L), class = "data.frame")

 dat2 <- structure(list(V1 = c(2L, 6L, 5L, 9L, 7L), V2 = c(2L, 10L, 5L, 
 5L, 6L), V3 = c(3L, 4L, 3L, 8L, 7L), V4 = c(3L, 2L, 10L, 1L, 
 9L), V5 = c(2L, 4L, 8L, 1L, 6L), subject = c(1, 3, 5, 6, 8)), .Names = c("V1", 
 "V2", "V3", "V4", "V5", "subject"), row.names = c(NA, -5L), class = "data.frame")

创建

中常见的主题ID索引
 indx <- intersect(dat1$subject, dat2$subject)

在具有共同主题ID的数据集上应用cor.test

 cor.test(as.matrix(dat1[dat1$subject %in% indx,3:5]), as.matrix(dat2[dat2$subject %in% indx, 3:5]))