在保留第一列的同时为每列创建一个向量

时间:2017-03-17 15:14:17

标签: r

我想为每个特征列创建一个向量(在下面的例子中,列a到t),其中对于每个向量,将包含第一列和特征列。以下只是一个示例数据框。实际数据较大。

string <- randomStrings(n=1000, len = 5, digits = T, upperalpha = T, 
                    loweralpha = T, unique = T, check = T)
df <- data.frame(replicate(21,sample(-100:150,80,rep = T)))
df[,1] <- string[1:80]
colnames(df)[-1] <- letters[1:20]
names(df)[1] <- paste("ID")

前三个特征列的所需脚本如下所示:

id_a <- df[,c(1,2)]
id_b <- df[,c(1,3)]
id_c <- df[,c(1,4)]

我应该如何在一次运行中对所有特征列执行此操作?

1 个答案:

答案 0 :(得分:1)

这一行将会这样做:

for (i in 2:ncol(df)) assign(paste0("id_", names(df)[i]), df[ , c(1, i)])