Циклы R: добавление столбца в таблицу, если он еще не существует

Я пытаюсь скомпилировать данные из нескольких файлов, используя циклы for в R. Я хотел бы собрать все данные в одну таблицу. Следующие вычисления являются лишь примером .

library(reshape)

dat1 <- data.frame("Specimen" = paste("sp", 1:10, sep=""), "Density_1" = rnorm(10,4,2), "Density_2" = rnorm(10,4,2), "Density_3" = rnorm(10,4,2))
dat2 <- data.frame("Specimen" = paste("fg", 1:10, sep=""), "Density_1" = rnorm(10,4,2), "Density_2" = rnorm(10,4,2))

dat <- c("dat1", "dat2")
for(i in 1:length(dat)){
data <- get(dat[i])
melt.data <- melt(data, id = 1)
assign(paste(dat[i], "tbl", sep=""), cast(melt.data, ~ variable, mean))
}

rbind(dat1tbl, dat2tbl)

Каков самый простой способ добавить дополнительный столбец в dat2? Я хотел бы получить такое же имя столбца (в данном случае "Density_3") и заполнить его нулями, если он еще не существует. Предположим, что У меня есть ~ 100 таблиц с количеством столбцов (Density_1, 2, 3 и т. Д.), Варьирующимся от 5 до 6.

Я пробовал следовать, но это не сработало:

if(names(data) %in% "Density_3" == FALSE){
dat.all$Density_3 <- 0
} else {
dat.all$Density_3 <- dat.all$Density3}

Еще один: есть ли простой способ rbind () таблицы? Кажется, что rbind (get (dat)) не работает.

5
задан A5C1D2H2I1M1N2O1R2T1 6 September 2013 в 17:36
поделиться