使用tidyr和dplyr提取多对变量的相关性

使用tidyr和dplyr提取多对变量的相关性,r,dplyr,tidyr,R,Dplyr,Tidyr,我的数据集附带了两种不同类型的因子分析结果(oblimin和varimax)。我想关联——也许还绘制——来自斜向旋转的第一个因子的分数与来自varimax旋转的第一个因子的分数,然后是来自两者的第二个因子的分数,等等,因为我想可视化不同类型旋转的效果。我的数据如下所示。不知何故,我觉得我应该能够最终得到一个如下所示的数据帧: Variable | Oblimin Score | Varimax Score h | 0.23 | 0.12 h | -1

我的数据集附带了两种不同类型的因子分析结果(oblimin和varimax)。我想关联——也许还绘制——来自斜向旋转的第一个因子的分数与来自varimax旋转的第一个因子的分数,然后是来自两者的第二个因子的分数,等等,因为我想可视化不同类型旋转的效果。我的数据如下所示。不知何故,我觉得我应该能够最终得到一个如下所示的数据帧:

Variable | Oblimin Score | Varimax Score
h        | 0.23          | 0.12
h        | -1            | -.87
i        | 0.2           | 0.3
i        | 0.5           | 0.4
...      | ...           | ...
下面是提供示例数据帧的代码。目前,我以一条错误消息结束,即存在重复的标识符。我尝试了这个解决方案,在链中提供一个唯一的id号,如下所示-mutate(id=sequence(n())%>%-但是它产生了一个数据帧,其中oblimin和varimax分数在交替行上

#libraries
library(tidyr)
library(dplyr)
#fake data
h.varimax<-rnorm(1000)
h.oblimin<-rnorm(1000)
i.varimax<-rnorm(1000)
i.oblimin<-rnorm(1000)
df<-data.frame(h.varimax, h.oblimin, i.varimax, i.oblimin)
#restructuring
df%>%
#this is necessary in my code, not in the sample data code though
select(contains('varimax'), contains('oblimin'))%>%
#wide to long
gather(variable, value) %>%
#split the variable 'variable' so that I have one variable with two values,     
#h or i.  I want to correlate the oblimin and the varimax scores for the i 
#variables and the oblimin and the varimax scores for the h variables     
separate(variable, into=c('factor', 'method')) %>%
#This seems necessary to spread the method variable back into two columns     
spread(method, value)
#库
图书馆(tidyr)
图书馆(dplyr)
#假数据

h、 你是怎么运行代码的?它不起作用。也许您可以发布最终输入数据帧的
dput
。缺少一个注释代码。这就是我试图解决的问题!!!将直到该
separate
语句的所有结果保存到一个数据帧中-称之为
ndf
。然后,检查ndf[c(2001,2002),]
例如。您注意到,
方法
有重复的值<代码>排列不会处理它们。这对你有用吗?`%>%mutate(id=rep(1:2000,2))%%>%spread(方法,值)`你运行了那段代码吗?它不起作用。也许您可以发布最终输入数据帧的
dput
。缺少一个注释代码。这就是我试图解决的问题!!!将直到该
separate
语句的所有结果保存到一个数据帧中-称之为
ndf
。然后,检查ndf[c(2001,2002),]例如。您注意到,
方法
有重复的值<代码>排列不会处理它们。这对你有用吗?`%>%变异(id=rep(1:2000,2))%>%扩散(方法,值)`