【发布时间】:2022-12-03 12:29:20
【问题描述】:
我正在尝试对下一个问题使用循环或应用系列解决方案。我的数据框很少,例如:
df1 <- data.frame(a = c(1,2,3,NA,NA,NA,NA,NA,9,NA),b = c(1,2,3,4,NA,NA,NA,8,9,10),c = c(1,2,3,NA,NA,NA,7,8,NA,NA))
df2 <- data.frame(a = c(1,2,3,4,5,6,NA,NA,NA,10),b = c(1,2,3,4,NA,NA,NA,8,9,10),c = c(1,2,3,NA,NA,NA,7,8,NA,NA))
df5 <- data.frame(a = c(1,2,3,4,5,6,NA,NA,9,10),b = c(1,2,3,4,5,6,NA,8,9,10),c = c(1,2,3,NA,NA,NA,7,8,9,NA))
我在这里尝试使用 na.approx 来填补一些 NA 空白。我的想法是:
l <- c(1,2,5)
for (i in l){
df[[i]] <- df[[i]] %>% mutate(a = na.approx(a, na.rm = FALSE))
df[[i]] <- df[[i]] %>% mutate(b = na.approx(b, na.rm = FALSE))
df[[i]] <- df[[i]] %>% mutate(c = na.approx(c, na.rm = FALSE))
}
在此示例中,我收到以下错误:
Error in UseMethod("mutate") :
no applicable method for 'mutate' applied to an object of class "c('double', 'numeric')"
根据我的实际数据,我得到了这个错误:
Error in `vectbl_as_col_location2()`:
! Can't extract columns past the end.
i Location 13101 doesn't exist.
i There are only 16 columns.
其中“13101”将是名为“df13101”的数据框的一部分。
当我检查数据框类时,我得到
[1] "data.frame"
例如,但我得到的实际数据框
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
当我检查每个变量的类型时,我想改变的都是数字(示例和真实变量)。
我需要了解如何正确调用这些数据帧,以及由于数据类或 mutate 的使用而可能面临的问题。我试过使用 mapply,但我对 R 很陌生,而且我几乎不了解整个 apply 系列。
任何帮助都会很棒,感谢阅读!
【问题讨论】: