我必须阅读一些外部文件,提取一些列并用零完成缺失值。所以如果第一个文件在column$Name中有:a、b、c、d,并且column$Area有离散值;第二个文件在某些列中有:b、d、e、f 等对于我需要创建这样一个数据框的其他文件:
a b c d e f
File1 value value value value 0 0
File2 0 value 0 value value value
这是我为了更好地解释我的问题而编写的虚拟代码:
listDFs <- list()
for(i in 1:10){
listDFs[[i]] <-
data.frame(Name=c(
c(paste(sample(letters,size=2,replace=TRUE),collapse="")),
c(paste(sample(letters,size=2,replace=TRUE),collapse="")),
c(paste(sample(letters,size=2,replace=TRUE),collapse="")),
c(paste(sample(letters,size=2,replace=TRUE),collapse="")),
c(paste(sample(letters,size=2,replace=TRUE),collapse="")),
c(paste(sample(letters,size=2,replace=TRUE),collapse="")),
c(paste(sample(letters,size=2,replace=TRUE),collapse=""))),
Area=runif(7))
}
lComposti <- sapply(listDFs, FUN = "[","Name")
dfComposti <- data.frame(matrix(unlist(lComposti),byrow=TRUE))
colnames(dfComposti) <- "Name"
dfComposti <- unique(dfComposti)
#
## The CORE of the code
lArea <- list()
for(i in 1:10){
lArea[[i]] <-
ifelse(dfComposti$Name %in% listDFs[[i]]$Name, listDFs[[i]]$Area, 0)}
#
mtxArea <- (matrix(unlist(lArea),nrow=c(10),ncol=dim(dfComposti)[1],byrow=TRUE))
问题在于列名和每个值之间的“同步”。
你有什么建议吗??
如果我的代码结果不清楚,我也可以上传我使用的文件。
最好的