我想填写这个费率列的NA(字符class)
I want to fill NA of this rate column (character class)
我有这样的数据:
rate
1 30%
2 50%
3 NA
4 2.65%
5. NA
并且我想将此比率列的 NA 填写为此总列值的平均值。由于比率列是字符 class。我不知道该怎么做:
我想要这样的结果:(30%+50%+2.65%)/3=27.55%
rate
1 30%
2 50%
3 27.55%
4 2.65%
5. 27.55%
因为费率列是字符 class。我不知道该怎么做。非常感谢!!
我可以为您提供这个解决方案,但也许 R-tag
的一些专业用户会建议更优雅的答案。
您的数据:
df <- data.frame(rate = c("30%", "50%", NA, "2.65%", NA))
在计算mean
之前去掉我们的%
library(dplyr)
df1 <- mutate_all(df, function(x) as.numeric(sub("%","",x)))
将 NA 替换为我们的平均值:
df1[is.na(df1)] <- colMeans(df1, na.rm = TRUE)
结果:
df1 %>%
mutate(across(everything(), ~paste0(., "%")))
rate
1 30%
2 50%
3 27.55%
4 2.65%
5 27.55%
我有这样的数据:
rate
1 30%
2 50%
3 NA
4 2.65%
5. NA
并且我想将此比率列的 NA 填写为此总列值的平均值。由于比率列是字符 class。我不知道该怎么做: 我想要这样的结果:(30%+50%+2.65%)/3=27.55%
rate
1 30%
2 50%
3 27.55%
4 2.65%
5. 27.55%
因为费率列是字符 class。我不知道该怎么做。非常感谢!!
我可以为您提供这个解决方案,但也许 R-tag
的一些专业用户会建议更优雅的答案。
您的数据:
df <- data.frame(rate = c("30%", "50%", NA, "2.65%", NA))
在计算mean
%
library(dplyr)
df1 <- mutate_all(df, function(x) as.numeric(sub("%","",x)))
将 NA 替换为我们的平均值:
df1[is.na(df1)] <- colMeans(df1, na.rm = TRUE)
结果:
df1 %>%
mutate(across(everything(), ~paste0(., "%")))
rate
1 30%
2 50%
3 27.55%
4 2.65%
5 27.55%