В приведенном ниже коде j
является именованным списком data.frames. Мне было интересно, может ли быть способ:
(a) извлекает числовые значения переменных (т. Е. one.short
и one.long
) внутри фреймов данных и прикрепляет связанные с ними имена (т. Е. "AAA"
или "BBB"
или "CCC"
) к извлеченным значениям?
(b) если переменная (т. Е. one.short
или one.long
) имеет значение NA
, то при извлечении этой переменной измените имя этого data.frame на NA
?
Ожидаемый результат:
В приведенном ниже примере я ожидаю, что мой вывод будет выглядеть следующим образом:
one.short = list(c("AAA", .6), c(NA, NA), c("CCC", .4))
one.long = list(c("AAA", .8), c(NA, NA), c(NA, NA))
R Код и воспроизводимые данные:
j <- list(data.frame(one.short = .6, one.long = .8), data.frame(one.short = NA,
one.long = NA), data.frame(one.short = .4, one.long = NA))
names(j) <- c("AAA", "BBB", "CCC")
# I tried this without success:
one.short = sapply(1:length(j), function(i) j[[i]]$one.short)
one.long = sapply(1:length(j), function(i) j[[i]]$one.long)