2017-03-17 76 views
0

我想为每个特征列(在下面的示例中,列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)] 

如何我应该这样做在一个运行的所有特征列?

+0

你的意思是'1:4'或'C(1,4)'? – A5C1D2H2I1M1N2O1R2T1

+0

对,它是[,c(1,4)]。谢谢。 – lala

回答

1

这条线将做到这一点:

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

谢谢你纠正我重新创建的子集。完成编辑。 – lala

+0

如果我想知道所有创建的矢量在一次运行中的“昏暗”怎么办? – lala

+0

我拿出了我的答案中涉及到原始列子集的部分,因为您修复了它。 –

相关问题