我有一个非常大的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。