如何将Y变量连接到数据框中的每个X变量?

时间:2019-05-11 13:47:02

标签: r list dataframe merge

我有一个200 X变量和1 Y变量的数据框。 我想分离每个X变量,然后将每个变量与Y变量连接在一起。 例如,

X1=rnorm(10, mean=5, as=2)
X2=rnorm(10, mean=5, as=2)
X2=rnorm(10, mean=5, as=2)
yvar=runif(10, 6,9)

X变量位于数据帧rand_data

rand_data=cbind(X1,X2,X3)

我使用了以下代码:

for (i in length (p)){ #p is the number of X variables
    s=matrix (0, nrow=10, ncol=2)
    for( j in p[i])
    s= cbind(yvar, rand_data[ ,i]) #rand_data is the matrix containing #all the X variables and yvar is the y variable
    }
}

我正在获取一个包含2个变量的数据框,我想要的是一个包含两个变量的数据框列表。

1 个答案:

答案 0 :(得分:2)

一个选项是

nm1 <- setdiff(names(df1), "Y")
lapply(nm1, function(x) cbind(df1["Y"], df1[x]))

另一个会是

library(purrr)
library(dplyr)
map(nm1, ~
         df1 %>% 
             select(Y, .x))