用不同的随机变量替换R表中的所有NA项
我在R中有一个很大的表,其中有一堆列都是NA。我想用另一个表中随机抽样的数字替换每个NA单元格,如下所示:用不同的随机变量替换R表中的所有NA项,r,csv,R,Csv,我在R中有一个很大的表,其中有一堆列都是NA。我想用另一个表中随机抽样的数字替换每个NA单元格,如下所示: dataTable=read.csv("my-data.csv", header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "") randValues <-c(0,0.3,-0.3) dataTable[is.na(dataTable)]
dataTable=read.csv("my-data.csv", header = TRUE, sep = ",", quote = "\"",
dec = ".", fill = TRUE, comment.char = "")
randValues <-c(0,0.3,-0.3)
dataTable[is.na(dataTable)] <- sample(randValues,1)
dataTable=read.csv(“my data.csv”,header=TRUE,sep=“,”,quote=“\”,
dec=“.”,fill=TRUE,comment.char=“”)
randValuesTrysample(randValues,sum(is.na(dataTable)),replace=TRUE)
这保证了您将获得与na
值一样多的独立样本,并且允许每次随机选择相同的值。(sum函数将逻辑输出强制为数字1和0)确实执行了dataTable[is.na(dataTable)]@Emer我也有同样的想法,但是添加了replace=TRUE
这样你就不会耗尽采样值。听起来你在做(类似于)缺失数据的插补,因此您可能希望查看为此目的编写的软件包。可接受的答案非常有效,谢谢。是否有一种简单的方法使样本产生偏差,比如我希望75%的随机值为-0.3?是的,您可以通过prob
参数添加一组权重,或者只编写随机值