我想在R中循环一个数据帧名称的向量。下面是我想要做的大致。最后一个代码块并不是很有效。我试过把"j“放在括号里,使用get()和paste0()的组合,但还没有成功。
library(tidyverse)
starwars
blue <- starwars %>%
filter(eye_color=="blue")
brown <- starwars %>%
filter(eye_color=="brown")
df_set <- Filter(function(x) is.data.frame(get(x)), ls())
#This is what I want to do for one data frame
for (i in 1:nrow(blue)) {
if (is.na(blue$mass[i])) {
blue$mass[i] <- 10000
}
}
#How do I loop through all data frames as specified in vector df_set?
for (j in df_set) {
for (i in 1:nrow(j)) {
if (is.na(j$mass[i])) {
j$mass[i] <- 10000
}
}
}发布于 2020-10-14 21:28:39
我们可以使用map遍历数据集的list,并使用标准的tidyverse函数将NA替换为value
library(dplyr)
library(purrr)
library(tidyr)
df_set_new <- map(df_set, ~ .x %>%
mutate(mass = replace_na(mass, 10000)))数据
df_set <- list(blue, brown)https://stackoverflow.com/questions/64354332
复制相似问题