Я использую для цикла, чтобы объединить несколько файлов с другим файлом:Объединить в петле R
< файлов - list.files ("путь", шаблон = "TXT.", Ignore.case = T)
for(i in 1:length(files))
{
data <- fread(files[i], header=T)
# Merge
mydata <- merge(mydata, data, by="ID", all.x=TRUE)
rm(data)
}
"MYDATA" выглядит следующим образом (упрощенно):
ID x1 x2
1 2 8
2 5 5
3 4 4
4 6 5
5 5 8
"данные" выглядит следующим образом (около 600 файлов, в общем 100GB). Пример 2 (отдельных) файлов. Интегрируя все в 1 было бы невозможно (слишком большой):
ID x3
1 8
2 4
ID x3
3 4
4 5
5 1
Когда я запускаю мой код я получаю следующий набор данных:
ID x1 x2 x3.x x3.y
1 2 8 8 NA
2 5 5 4 NA
3 4 4 NA 4
4 6 5 NA 5
5 5 8 NA 1
То, что я хотел бы получить это:
ID x1 x2 x3
1 2 8 8
2 5 5 4
3 4 4 4
4 6 5 5
5 5 8 1
ID уникальны (никогда не дублирует более 600 файлов).
Любая идея о том, как достичь этого как можно более эффективно.
Вы пытаетесь объединить все текстовые файлы в один текстовый файл? Если идентификатор уникален, почему бы не использовать 'rbind' или' cbind' для присоединения к ним вместо слияния? – user5249203
Я не думаю, что есть функция, которая «сливается» так, как вы хотите, для вашей структуры данных. Возможно, нам придется написать его. Ваш файл 'data' не обязательно всегда содержит только столбец« x3 »? – Vlo
данные всегда точные, 1 столбец «ID», 1 столбец «x3». У меня только больше идентификаторов в отдельных файлах данных, чем в mydata – research111