合并两列时出错

时间:2017-07-20 17:20:50

标签: r dataframe

我正在尝试将两列Previous$Col1Previous$Col3合并为一个data.frame

这就是我试图做的事情:

x<-data.frame(Previous$Col1)
y<-data.frame(Previous$Col3)
z<-merge(x,y)

出于某种原因,我在控制台上得到了这个error

Error: cannot allocate vector of size 24.0 Gb

出了什么问题,我该怎么做才能解决这个问题?

具有80000行的两列数据框如何占用24 GB的内存?

谢谢!

2 个答案:

答案 0 :(得分:2)

您正在创建一个完整的笛卡尔产品,其中包含80000 * 80000行和两列,总共1.28e + 10个元素(如果我是正确的话,大约为51GB)。你想通过合并完成什么?

> x<-data.frame(a= c("a","b"))
> y<-data.frame(b= c(1,2,3))
> z<-merge(x,y)
> x
  a
1 a
2 b
> y
  b
1 1
2 2
3 3
> z
  a b
1 a 1
2 b 1
3 a 2
4 b 2
5 a 3
6 b 3

你可以data.frame(Col3 = Previous$Col3, Col1= Previous$Col1)来实现你想要的目标。

答案 1 :(得分:1)

尝试使用dplyr软件包中的bind_cols或基础R中的cbind

bind_cols(Previous$Col1,Previous$Col3)

cbind(Previous$Col1,Previous$Col3)

此外,由于这些列来自相同的原始data.frame。可以使用dplyr包中的select()

select(Previous,Col1,Col3)