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.frame
s 本质上是列列表,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))
我有一个 data.frame,其中有几列我想加入新的 data.frame 中的一列。
df1 <- data.frame(col1 = 1:3, col2 = 4:6, col3 = 7:9)
我如何创建一个新的 data.frame,只有一个列是 1:9?
由于 data.frame
s 本质上是列列表,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))