在R中列出与大CSV的串联

问题描述 投票:0回答:1

我是R的新手,我必须连接两个大约有两百万个观察和25个变量的列表。更准确地说,我通过使用以下R代码行读取两个大型CSV来获得这两个列表:

require(data.table)
setwd("/Users/cart")

DT2017 <- fread("BNR_2017.csv")
DT2018 <- fread("BNR_2018.csv")

现在,我想将DT2017DT2018列表连接到大约400万个观测值和25个变量中。

r list bigdata concat
1个回答
0
投票

如果你使用fread,我想你在R中会有两个数据帧。但是,当你有这么多行时,使用简单的rbind可能不是一个好主意,所以我认为最好通过首先创建一个填充NAs的数据帧来预先分配R中的内存,然后使用循环“粘贴”每行中的每一行数据帧。

df <- data.frame(an = rep(NA, 4000), b1 = rep(NA, 40000), b3  = rep(NA, 40000))


df1 <- data.frame(an = seq(1:2000), b1 = seq(4001,6000), b3 = rep('abc', 2000))
df2 <- data.frame(an = seq(1:2000), b1 = seq(4001,6000), b3 = rep('abc', 2000))

### create a simple loop
for (i in 1:dim(df1)[1]) {
  print(i)
  df <- rbind(df, df1[i,])
}

然后你可以为df2做同样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.