2013-08-15 2 views
0

Наверное, довольно простой вопрос, но я не могу понять это сам.Уменьшите все столбцы data.frame до одного длинного вектора

У меня есть data.frame вроде этого:

df <- data.frame(X1=1:4,X2=5:8,X3=9:12) 

Я хотел бы создать один длинный вектор из всех столбцов, что, для примера, будет выглядеть следующим образом:

[1] 1 2 3 4 5 6 7 8 9 10 11 12 

Как мне это сделать?

Спасибо!

ответ

4

data.frame это особый тип list, поэтому, чтобы получить то, что вы хотите, вы можете просто использовать:

unlist(df, use.names = FALSE) 
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 
+0

Вот оно, спасибо! – Rob

2

Другой вариант:

> stack(df)[,1] 
[1] 1 2 3 4 5 6 7 8 9 10 11 12 
+1

Спасибо! Я не знал функцию стека до – Rob

+0

@TylerRinker. Я отредактировал свой ответ: 'as.numeric' не требуется. –