如何通过随机值为 R 中的单列估算缺失值?
要通过R中单个列的随机值来估算缺失值,我们可以使用Hmisc包中的估算函数。
例如,如果我们有一个名为C的数据框,其中有一列有一些缺失值,那么我们可以使用下面给定的命令随机填充这些缺失值-
df$C<-with(df,impute(C,"random"))
示例1
以下代码段创建了一个示例数据框-
x<-sample(c(NA,2,5),20,replace=TRUE) df1<-data.frame(x) df1
创建以下数据框-
x 1 NA 2 NA 3 2 4 2 5 2 6 NA 7 NA 8 NA 9 2 10 5 11 NA 12 NA 13 NA 14 2 15 2 16 NA 17 5 18 5 19 5 20 NA
要加载Hmisc包并随机计算x中的缺失值,请将以下代码添加到上述代码段中-
library(Hmisc) df1$x<-with(df1,impute(x,"random")) df1输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
x 1 2 2 5 3 2 4 2 5 2 6 2 7 2 8 5 9 2 10 5 11 2 12 5 13 2 14 2 15 2 16 2 17 5 18 5 19 5 20 2
示例2
以下代码段创建了一个示例数据框-
y<-sample(c(NA,rnorm(3)),20,replace=TRUE) df2<-data.frame(y) df2
创建以下数据框-
y 1 0.1912368 2 0.1912368 3 NA 4 0.1912368 5 -0.8921644 6 NA 7 -0.8921644 8 -0.8921644 9 0.3934629 10 NA 11 NA 12 0.3934629 13 0.1912368 14 0.3934629 15 0.3934629 16 0.1912368 17 -0.8921644 18 0.3934629 19 0.1912368 20 0.1912368
要随机估算y中的缺失值,请将以下代码添加到上述代码段中-
df2$y<-with(df2,impute(y,"random")) df2输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
y 1 0.1912368 2 0.1912368 3 0.1912368 4 0.1912368 5 -0.8921644 6 0.3934629 7 -0.8921644 8 -0.8921644 9 0.3934629 10 0.1912368 11 -0.8921644 12 0.3934629 13 0.1912368 14 0.3934629 15 0.3934629 16 0.1912368 17 -0.8921644 18 0.3934629 19 0.1912368 20 0.1912368