R 从一个数据帧中提取变量列表并将其应用于另一个数据帧
我在R中有一个数据帧,包含几个二进制变量R 从一个数据帧中提取变量列表并将其应用于另一个数据帧,r,dataframe,R,Dataframe,我在R中有一个数据帧,包含几个二进制变量 df1 <- cbind(w = c(1,0,0,0,0), x = c(1,1,1,1,0), y = c(0,0,0,1,1), z = (c(0,0,0,0,1))) > df1 # w x y z #[1,] 1 1 0 0 #[2,] 0 1 0 0 #[3,] 0 1 0 0 #[4,] 0 1 1 0 #[5,] 0 0 1 1 我将非常感谢任何帮助 试试这个 cbind(df1,`colnames<-`(+
df1 <- cbind(w = c(1,0,0,0,0), x = c(1,1,1,1,0), y = c(0,0,0,1,1), z = (c(0,0,0,0,1)))
> df1
# w x y z
#[1,] 1 1 0 0
#[2,] 0 1 0 0
#[3,] 0 1 0 0
#[4,] 0 1 1 0
#[5,] 0 0 1 1
我将非常感谢任何帮助 试试这个
cbind(df1,`colnames<-`(+apply(df2, 1, function(k) rowSums(df1[,k])>0),do.call(paste,c(as.data.frame(df2),sep = "_"))))
> df1_New
# w x y z w_z y_x y_w
#[1,] 1 1 0 0 1 1 1
#[2,] 0 1 0 0 0 1 0
#[3,] 0 1 0 0 0 1 0
#[4,] 0 1 1 0 0 1 1
#[5,] 0 0 1 1 1 1 1
cbind(df1,`colnames<-`(+apply(df2, 1, function(k) rowSums(df1[,k])>0),do.call(paste,c(as.data.frame(df2),sep = "_"))))
w x y z w_z y_x y_w
[1,] 1 1 0 0 1 1 1
[2,] 0 1 0 0 0 1 0
[3,] 0 1 0 0 0 1 0
[4,] 0 1 1 0 0 1 1
[5,] 0 0 1 1 1 1 1