у меня есть кадр данных, как это:свернуть data.frame в вектор
COL1 COL2 COL3
a h b f c g d j
Я хотел бы следующий вывод:
COL
a
b
с
д
е
г
ч
J
Как это можно сделать? Спасибо заранее!
у меня есть кадр данных, как это:свернуть data.frame в вектор
COL1 COL2 COL3
a h b f c g d j
Я хотел бы следующий вывод:
COL
a
b
с
д
е
г
ч
J
Как это можно сделать? Спасибо заранее!
Если ваш data.frame
назван dat
, попробуйте:
unlist(dat, use.names=FALSE)
Вы также можете попробовать следующее:
as.character(unlist(dat, use.names=FALSE))
c(na.omit(as.character(unlist(dat, use.names=FALSE))))
, которые могут быть полезны, если ваши данные вводятся в качестве факторов.
Кроме того, в вашем вопросе вы указываете, что на самом деле у вас нет базового «вектора», а скорее одного столбца data.frame
. Таким образом, что-то вроде dat2 <- data.frame(COL = c(na.omit(as.character(unlist(dat, use.names=FALSE)))))
может быть тем, что вы ищете.
do.call(c, your_data_frame)
Пример:
> dat <- data.frame(a = 1:3, b = 2:4)
> do.call(c, dat)
a1 a2 a3 b1 b2 b3
1 2 3 2 3 4
Это занимает каждый столбец data.frame и рассматривает его как отдельный вход в с так вы просто конкатенации все в одном векторе.
Вы можете использовать unlist
:
dat <- data.frame(A1 = letters[1:3],
A2 = letters[2:4],
A3 = c("f", "a", "b"), stringsAsFactors = FALSE)
unlist(dat)
# A11 A12 A13 A21 A22 A23 A31 A32 A33
# "a" "b" "c" "b" "c" "d" "f" "a" "b"
Или 'unlist (Дат)'. –
Привет, Дэсон. Спасибо в первую очередь. Я пробовал, но возникает следующая ошибка: Ошибка в do.call (c, dat): «что» должно быть символьной строкой или функцией – Bnf8
@ Bnf8, похоже, что вы использовали 'c' в качестве имени переменной где-то , Попробуйте 'do.call (base :: c, your_data_frame)'. –