假设您的数据框已命名,df并且要调用要修复的列df$x.您可以执行以下操作.
你必须解构然后转换为数字.这将为您提供无法合并到数字的所有字符串的NA.
nums <- as.numeric(as.character(df$x))
Run Code Online (Sandbox Code Playgroud)
正如Richie Cotton指出的那样,有一种"更有效,但更难记住"的方法将因子转换为数字
nums <- as.numeric(levels(df$x))[as.integer(df$x)]
Run Code Online (Sandbox Code Playgroud)
为了得到平均值,你使用mean()但通过na.rm = T
m <- mean(nums, na.rm = T)
Run Code Online (Sandbox Code Playgroud)
将均值分配给所有NA值.
nums[is.na(nums)] <- m
Run Code Online (Sandbox Code Playgroud)
然后你可以替换旧数据,但我不推荐它.而只是添加一个新列
df$new.x <- nums
Run Code Online (Sandbox Code Playgroud)