Подтвердить что ты не робот

Использование R convert data.frame для простого вектора

У меня есть data.frame:

> print(v.row)
    X1  X2  X3  X4  X5  X6  X7  X8  X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24
57 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167 167 167 165 177 177 177 177
> dput(v.row)
structure(list(X1 = 177, X2 = 165, X3 = 177, X4 = 177, X5 = 177, 
    X6 = 177, X7 = 145, X8 = 132, X9 = 126, X10 = 132, X11 = 132, 
    X12 = 132, X13 = 126, X14 = 120, X15 = 145, X16 = 167, X17 = 167, 
    X18 = 167, X19 = 167, X20 = 165, X21 = 177, X22 = 177, X23 = 177, 
    X24 = 177), .Names = c("X1", "X2", "X3", "X4", "X5", "X6", 
"X7", "X8", "X9", "X10", "X11", "X12", "X13", "X14", "X15", "X16", 
"X17", "X18", "X19", "X20", "X21", "X22", "X23", "X24"), row.names = 57L, class = "data.frame")

Я бы удалил все имена строк и столбцов, чтобы получить простой vector. Но функция as.vector не работает (она возвращает data.frame).

> as.vector(v.row)
    X1  X2  X3  X4  X5  X6  X7  X8  X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24
57 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167 167 167 165 177 177 177 177
4b9b3361

Ответ 1

см. ?unlist

Учитывая структуру списка x, список исключений упрощает ее для создания вектора который содержит все атомные компоненты, которые встречаются в x.

unlist(v.row)
[1] 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167 167
       167 165 177 177 177 177

ИЗМЕНИТЬ

Вы также можете сделать это с помощью as.vector, но вам нужно предоставить правильный режим:

 as.vector(v.row,mode='numeric')
 [1] 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167
      167 167 165 177 177 177 177

Ответ 2

У меня был этот фрейм данных из csv

x <- as.numeric(dataframe$column_name)

отлично поработал. (то же самое с dataframe[3], 3 - мой индекс столбца не работал)

Ответ 3

Просто примечание ко второй части ответного ответа:

df <- data.frame(1:10) 
as.vector(df, mode="integer") #Error

as.vector(df[[1]],mode="integer") #Works; 
as.vector(df[[1]]) #Also works

т.е., по-видимому, вы должны выбрать элемент списка из кадра данных, хотя там только 1 элемент.