将两个不同的数据帧连接成一个

时间:2013-06-07 10:18:04

标签: r dataframe

我有两个不同的数据框,它们没有任何公共列来连接它们。有没有办法从两个不同的数据框创建一个新的数据框而没有任何公共列?其中一个数据框包含天数值。

第一个数据帧的示例:

 day
 2000-01-01 00:00:00
 2000-01-01 00:01:00
 2000-01-01 00:02:00

第二个数据框的示例:

 price
  1
  2
  3

新数据框的结果:

     day              price
 2000-01-01 00:00:00    1
 2000-01-01 00:01:00    2
 2000-01-01 00:02:00    3

3 个答案:

答案 0 :(得分:2)

data.frame怎么样? - :

 data.frame(day,price)

这是一个例子。两个输入数据框:

> a
    x y
1   1 a
2   2 b
3   3 c
4   4 d
5   5 e
6   6 f
7   7 g
8   8 h
9   9 i
10 10 j
> b
    v     w
1  14 FALSE
2   5  TRUE
3   8  TRUE
4   4  TRUE
5  17 FALSE
6   5  TRUE
7  15 FALSE
8  11 FALSE
9  15 FALSE
10  9  TRUE

以下是data.frame的工作原理:

> data.frame(a,b)
    x y  v     w
1   1 a 14 FALSE
2   2 b  5  TRUE
3   3 c  8  TRUE
4   4 d  4  TRUE
5   5 e 17 FALSE
6   6 f  5  TRUE
7   7 g 15 FALSE
8   8 h 11 FALSE
9   9 i 15 FALSE
10 10 j  9  TRUE

答案 1 :(得分:1)

cbind怎么样?

dd1 = data.frame(x1 = runif(10), y1=runif(10))
dd2 = data.frame(x2 = runif(10), y2=runif(10))

所以

dd = cbind(dd1, dd2)

答案 2 :(得分:0)

以下是data.table方法,可能对较大的data.frame有用:

library(data.table)
### if converting from data.frame:
df1 <- data.frame(a=c(1,2,3))
dt1 <- data.table(df1)
### or more simply:
dt1 <- data.table(a=c(1,2,3))
dt2 <- data.table(b=c(4,5,6))
dt3 <- data.table(dt1,dt2)
dt3

给出:

   a b
1: 1 4
2: 2 5
3: 3 6