我有一个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个变量的数据框,我想要的是一个包含两个变量的数据框列表。
答案 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))