使用序列填充列的内存密集程度最高且最有效的方法是什么?

时间:2017-11-09 07:11:56

标签: r dataframe

我有一个非常大的data.frame大小约600万行和100个变量。我正在尝试创建一个新列并用行号填充列。我尝试了以下代码,其中一些是我在线检索的:

#1

df$ID  <- 1:nrow(df)

#2

library(tibble)
df <- tibble::rowid_to_column(df, "ID")

#3

for (i in 1:6000000) df[i,"ID"] <- i

#4

df[,"ID"] <- c(1:6000000) 

其中大部分都给了我错误信息:

  

错误:无法分配大小为xxxxx Mb的矢量

#4 ,大​​部分时间都能顺利快速地进行(几秒钟)。

上述方法之间差异的原因是什么?为什么#4 有效但其他人无效?对于我如何完成这件事,这就像试错了一样......

---一些信息---

我的电脑是配备Intel i7 Core和8GB RAM的64位电脑。我正在使用R Studio v1.1.383运行64位R 3.4.2。数据框的object.size大约为3.8 Gb。

0 个答案:

没有答案