2017-03-17 77 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

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

相關問題