age*_*nis 5 random r missing-data na
我想随机添加NA到R中的data.frame.到目前为止,我已经研究了这些问题:
这里提供了许多解决方案,但我找不到符合这5个条件的解决方案:
有人有想法吗?我已经尝试编写一个函数来执行此操作(在第一个链接的答案中)但它不符合N°3和4点.谢谢.
[注意]确切的比例,当然是+/- 1NA.
这就是我为library(imputeMulti)JSS目前正在审核的论文所做的工作.这将插入NA到整个数据集的随机百分比并且可以很好地扩展,由于具体情况,它不能保证确切的数字n * p * pctNA %% 1 != 0.
createNAs <- function (x, pctNA = 0.1) {
n <- nrow(x)
p <- ncol(x)
NAloc <- rep(FALSE, n * p)
NAloc[sample.int(n * p, floor(n * p * pctNA))] <- TRUE
x[matrix(NAloc, nrow = n, ncol = p)] <- NA
return(x)
}
Run Code Online (Sandbox Code Playgroud)
显然,您应该使用随机种子进行重现性,可以在函数调用之前指定.
这可作为创建基线数据集的一般策略,以便在插补方法之间进行比较.我相信这是你想要的,虽然你的问题(如评论中所述)没有明确说明.
编辑:我认为这x是完整的.所以,我不确定它将如何处理现有的缺失数据.如果你愿意,你当然可以修改代码,尽管这可能会使运行时间增加至少O(n*p)
| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |