Question

I have to read some external files, extract some columns and complete the missing values with zeros. So if the first file has in the column$Name: a, b, c, d, and the column$Area with discrete values; the second file has in the some column: b, d, e, f and so on for the further files I need to create a data frame such this:

        a      b      c      d      e   f
File1 value  value  value  value    0   0
File2   0    value    0    value  value  value

This is the dummy code I wrote to try to better explain my problem:

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))

The problem is about the "synchronization" between the column name and each values.

Have you some suggestion??

If my code result to be un-clear I can also upload the files I work with.

Best

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top