объединение списка с большими CSV в R - PullRequest
0 голосов
/ 18 марта 2019

Я новичок в R, и мне нужно объединить два списка из примерно 2 миллионов наблюдений и 25 переменных. Чтобы быть более точным, я получил два списка, прочитав два больших CSV со следующими строками кода R:

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

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

Теперь я хотел бы объединить списки DT2017 и DT2018 в один из примерно 4 миллионов наблюдений и 25 переменных.

1 Ответ

0 голосов
/ 18 марта 2019

Я думаю, что у вас будет два кадра данных в R, если вы используете fread. Однако использование простого rbind может быть не очень хорошей идеей, когда у вас так много строк, поэтому я думаю, что лучше предварительно выделить память в R, создав сначала кадр данных, заполненный NA s, а затем использовать цикл для «вставки». 'каждая строка в кадре данных.

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.

...