Предполагается, что существует три файла:
==> file1.txt <==
1111111
3333333
==> file2.txt <==
2222222
3333333
==> file3.txt <==
1111111
2222222
3333333
Я бы прочитал три файла в отдельные кадры данных:
file1=read.csv('file1.txt', header=FALSE)
file2=read.csv('file3.txt', header=FALSE)
file3=read.csv('file3.txt', header=FALSE)
Добавить флаг к каждому:
file1$file1.txt <- rep(1,nrow(file1))
file2$file2.txt <- rep(1,nrow(file2))
file3$file3.txt <- rep(1,nrow(file3))
Выполнить внешнее объединение, используя merge
, заменить значения NA на 0 и присвоить именам строк значения
merged=merge(merge(file1,file2, all=TRUE), file3, all=TRUE)
merged[is.na(merged)] <- 0
rownames(merged) <- merged[,1]
merged[,1] <- NULL
теперь объединено:
file1.txt file2.txt file3.txt
1111111 1 0 1
2222222 0 1 1
3333333 1 1 1
См., В частности:
https://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html
https://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html
А:
Как объединить (объединить) фреймы данных (внутренний, внешний, левый, правый)?