2017-03-14 325 views
1

我想在下面的例子中將一個列表綁定到數據框。我想要每行的行號,但是我得到每一行,以及整個列表。這只是我想要做的簡化,但原理是一樣的。cbind,垂直而不是水平

mtcars是32 obs的數據幀。 11個變量

的我在尋找使它32個OBS 12個變量,其中新列在列表中,而不是我得到32個OBS 43個變量

任何幫助將是非常讚賞的

the_list <- list() 
for (i in 1:nrow(mtcars)) 
{ 
    the_list[i] <- i 
} 

test <- cbind(mtcars, the_list) 
+3

不要使用列表,而是使用向量。你可以在後面創建一個向量,比如''unlist'「:'test < - cbind(mtcars,unlist(the_list))'或者只是得到一個行號'test < - cbind(mtcars,seq_along(mtcars [,1 ]))'。 – lmo

+2

'mtcars $ row_number = 1:nrow(mtcars)'有效嗎? – Fernando

回答

0

lmo的回覆是正確的。

測試< - cbind(mtcars,不公開(the_list))

0

如果您rownames只是數字1 ... nrow(),然後簡單地做:

mtcars %>% rownames_to_column(var='the_list') 
0

不知道爲什麼你會希望它是一個列表,而不是像其他列向量的列表,但下面的工作

mtcars$listCol <- as.vector(x = 1:nrow(mtcars), mode = "list")