У меня есть большой список структур данных следующей структуры:
foo <- 1:5
lorem1968 <- c(6, NA, NA, 8, NA)
lorem1969 <- c(NA, 17, NA, 19, 20)
df1 <- data.frame(foo, lorem1968, lorem1969)
ipsum <- 11:15
lorem1970 <- c(22, NA, 24, NA, NA)
df2 <- data.frame(ipsum, lorem1969, lorem1970)
df.list <- list(df1, df2)
[[1]]
foo lorem1968 lorem1969
1 1 6 NA
2 2 NA 17
3 3 NA NA
4 4 8 19
5 5 NA 20
[[2]]
ipsum lorem1969 lorem1970
1 11 NA 22
2 12 17 NA
3 13 NA 24
4 14 19 NA
5 15 20 NA
Теперь я хотел бы перебрать все столбцы с именем loremxxxx и заменить все NA там на 0. Затем я хотел бы создатьновый столбец в каждом df, который содержит среднее значение всех столбцов loremxxxx, содержащихся в этом конкретном df.
Проблема заключается в том, что это перекрывающиеся панели в исходных данных, поэтому любой df1 содержит lorem1968, lorem1969, lorem1970. df2 содержит lorem1969, 1970, 1971. И т. д.
Я попытался выбрать столбцы следующим образом:
lorem.cols <- purrr::map(panels.list, function(x)
select(x, starts_with("lorem"))
)
, а также:
lorem.cols <- purrr::map(df.list, function(data)
data %>% select(data, starts_with("lorem"))
)
, но обавыдал ошибку либо не нашел функцию, либо дал мне «Выбор:» и ожидал ввода. Только что попытался скопировать со страницы справки функции select()
.
После того, как я планировал замену NA следующим образом:
df.list <- purrr::map(df.list, function(data)
data %>% mutate(lorem.cols = replace(is.na(lorem.cols), 0))
)
Спасибо, ребята!