いくつかの外部ファイルを読み取り、いくつかの列を抽出し、欠落している値をゼロで完了する必要があります。したがって、最初のファイルがcolumn $ Nameにある場合:a、b、c、d、および個別の値を持つcolumn$Area。2番目のファイルはいくつかの列にあります: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))
問題は、列名と各値の間の「同期」に関するものです。
何か提案はありますか?
コードの結果が不明確な場合は、使用しているファイルをアップロードすることもできます。
一番