Мне нужно прочитать некоторые внешние файлы, извлечь некоторые столбцы и заполнить недостающие значения нулями. Поэтому, если первый файл имеет в столбце $ Name: a, b, c, d и столбец $ Area с дискретными значениями; второй файл имеет в некоторой колонке: B, D, E, F и так далее для последующих файлов, мне нужно, чтобы создать фрейм данных, например это:R создать матрицу
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))
Проблема заключается в «синхронизации» между именем столбца и каждым значением.
У вас есть предложение?
Если мой код будет нечетким, я могу загрузить файлы, с которыми я работаю.
Лучшие
Спасибо за ваше предложение !!! Я решил свою проблему !!! Я полностью игнорирую пакет _reshape2_, но теперь я думаю, что буду внимательно изучать его !!!! – Riccardo