我有一个数据集,其中有一些NA值,但我可以手动计算出这些值应该是什么,因为数据框中有一个名称列,其余列只是数字,最后一列是总数。每行最多只有一个NA,所以我可以使用总列和所有其他列的总和来计算出该值应该是什么。只是想知道在不必一个一个硬编码的情况下,最好的方法是什么,因为我使用的数据框非常大。
示例数据框:
示例数据框:
df = structure(list(city = c("sydney", "new york", "london", "beijing", "paris", "madrid"),
year = c(2005:2010),
A = c(1, 4, 5 , NA, 2, 1),
B = c(3, NA, 4 , 9, 0, 6),
C = c(3, 4 , 6, 1, 8, NA),
total = c(NA, 10, 15, 14, NA, 15)),
class = "data.frame", row.names = c(NA, -6L))
df
fill
和replace_na
函数。 - Maëlzoo
包中的na.approx
函数也可以帮助解决问题。您可以执行类似于df = df%>% mutate(A = na.approx(A))
的操作来插值A列的值,以及其他列的值。 - thehand0