我有10个包含1000行的文本文件。
示例:第一个文件:
V1 V2
1 2
2 3
10 20
1 4
.....
第二档:
V1 V2
1 2
8 10
.....
我想要的是一个包含12列的最终文件。前两列表示关系,后两列表示不同的文件(如果该对存在则表示为1,如果不存在则表示0)例如:
最终档案:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
1 2 1 1 0 0 1 0 1 1 0 1
2 3 1 0 1 1 0 0 0 1 1 0
现在,经过搜索,我找到了,
# Create dummy data
L <- replicate(5, expand.grid(1:10, 1:10)[sample(100, 10), ], simplify=FALSE)
# Add a column to each data.frame in L.
# This will indicate presence of the pair when we merge.
L <- lapply(seq_along(L), function(i) {
L[[i]][, paste0('DF', i)] <- 1
L[[i]]
})
# Merge all the things
# (hat-tip to @Charles - http://stackoverflow.com/a/8097519/489704)
L.merged <- Reduce(function(...) merge(..., all=T), L)
head(L.merged)
# Var1 Var2 DF1 DF2 DF3 DF4 DF5
# 1 1 2 NA NA NA 1 NA
# 2 1 5 1 NA NA NA 1
# 3 1 9 NA NA NA 1 NA
# 4 1 10 NA NA 1 1 NA
# 5 2 5 NA NA 1 NA NA
# 6 2 6 NA 1 NA 1 NA
然而,问题是,这并没有显示那些具有全部NA的行。例如:
# 7 4 5 NA NA NA NA NA