我有一个数据框说'a'
qq ee rr tt
1 2 3 4
2 44 66 77
9 0 0 4
我想要创建一个向量,如:
vec <- c(1,2,3,4,2,44,66,77,9,0,0,4)
我该怎么做呢?
采取t
也将其转换为 a 的 ranspose ,matrix
然后转换为vector
:
as.vector(t(a))
[1] 1 2 3 4 2 44 66 77 9 0 0 4
使用詹姆斯的答案。
这是另一种选择:unlist
和排序。
unlist(a)[order(rep(seq_len(nrow(a)),ncol(a)))]
#qq1 ee1 rr1 tt1 qq2 ee2 rr2 tt2 qq3 ee3 rr3 tt3
# 1 2 3 4 2 44 66 77 9 0 0 4
这样您就可以保留名称中的信息,这可能很有用。如果您不想要名称,请使用unlist
with use.names=FALSE
。
为了好玩,这里有另一种选择:
> scan(textConnection(do.call(paste, a)))
Read 12 items
[1] 1 2 3 4 2 44 66 77 9 0 0 4
其中“a”是:
a <- read.table(textConnection("qq ee rr tt
1 2 3 4
2 44 66 77
9 0 0 4"), header=T)