R在R中绑定两个向量

Rbind two vectors in R

我有一个 data.frame,其中有几列我想加入新的 data.frame 中的一列。

df1 <- data.frame(col1 = 1:3, col2 = 4:6, col3 = 7:9)

我如何创建一个新的 data.frame,只有一个列是 1:9?

由于 data.frames 本质上是列列表,unlist(df1) 将为您提供一个包含所有值的大向量。现在你可以简单地从它构造一个新的 data.frame:

data.frame(col = unlist(df1))

你可以试试:

as.data.frame(as.vector(as.matrix(df1)))
#  as.vector(as.matrix(df1))
#1                         1
#2                         2
#3                         3
#4                         4
#5                         5
#6                         6
#7                         7
#8                         8
#9                         9

如果您也想要一个指标:

stack(df1)
#   values  ind
# 1      1 col1
# 2      2 col1
# 3      3 col1
# 4      4 col2
# 5      5 col2
# 6      6 col2
# 7      7 col3
# 8      8 col3
# 9      9 col3

只是为了提供一套完整的方法来做到这一点,这里是 tidyr 方法。

library(tidyr)
gather(df1)
   key value
1 col1     1
2 col1     2
3 col1     3
4 col2     4
5 col2     5
6 col2     6
7 col3     7
8 col3     8
9 col3     9

再使用 c 函数:

data.frame(col11 = c(df1,recursive=TRUE))
      col11
col11   1
col12   2
col13   3
col21   4
col22   5
col23   6
col31   7
col32   8
col33   9

另一种方法,仅用于使用 Reduce...

data.frame(Reduce(c, df1))