我有一个这样的数据框:
COL1 COL2 COL3
a h
b f
c g
d j
我想要以下输出:
COL
a
b
c
d
f
g
h
j
如何做到这一点? 提前谢谢!
答案 0 :(得分:6)
如果您的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)))))
这样的东西可能就是你要找的东西。
答案 1 :(得分:4)
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的每一列,并将其视为c的单独输入,因此您只需将所有内容连接到一个向量中。
答案 2 :(得分:3)
您可以使用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"