我在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)] <- sample(randValues,1)
问题是每个单元格都被randTable中随机选择的SAME替换。如何为每个单元格获取不同的编号?
答案 0 :(得分:3)
尝试sample(randValues, sum(is.na(dataTable)),replace=TRUE)
这可以保证您获得与NA
值一样多的独立样本,并允许每次随机选择相同的值。 (sum
函数强制logical
输出为数字1和0)