2016-06-05 3 views
0

У меня есть одна строка/столбец dataframe, что я хотел бы преобразовать в значение.Преобразование кадра данных в вектор

df <- data.table(x=c(300)) 
>#  x 
># 1: 300 

мне удалось это сделать, как это сделать:

b <- as.list(df)[[1]] 
># [1] 300 

так что identical(b, 300) == T

Есть более простой способ достижения этой цели? Я понимаю, что это очень простой вопрос, но я не мог найти решение. Помогите?

+1

попробовать 'unlist (ДФ)' – mtoto

+1

хорошо, поскольку преобразование data.frame в вектор имеет смысл в основном, если у вас есть только один vecor (или, в конечном счете, если у вас есть все столбцы одного типа), я думаю, вы можете просто использовать 'df $ x' или' df [[1]] 'try it: 'same (df $ x, 300)' ?? – digEmAll

+0

@mtoto, \t unlist не работает: u <- unlist (df); (u, 300) возвращает FALSE –

ответ

2

В принципе, кадры данных являются списками, поэтому вы можете вызывать unlist(df).

+0

Не работает: 'u <- unlist (df); идентичный (u, 300) 'возвращает' FALSE' –

+4

Он возвращает false, потому что unlist возвращает также имена столбцов в качестве имен векторов ... но значения равны. Попробуйте 'same (noname (unlist (df)), 300)' – digEmAll

1

Вместо использования unlist, вы можете просто сделать:

x <- df$x 

результат нормальный вектор со значениями от x:

> x 
[1] 300 
Смежные вопросы