【问题标题】:How to predict the original data given a corrupted dataset?给定损坏的数据集,如何预测原始数据?
【发布时间】:2019-07-17 22:06:58
【问题描述】:

比方说,用户可以选择在客户端输入 0 或将其留空(NA),但系统会将某些用户留空的 NA 更改为 0,当他们到达我们的数据库时。

如何预测或估算损坏的数据以正确地将那些 0 重置为 NA?

PS: 新系统不会改变值,所以我的老板希望我在给定新数据的情况下正确预测/估算旧的损坏数据......

我已经厌倦了 MICE、KKN、PCA 插补方法,但这些方法只会将数据更改为其他数字而不是 NA。有没有办法做到这一点?

估算数据:

 0.0015 0.0252   0.0159  0.0116 -0.0431 0.0252  -0.0058
-0.0955 0.0373   0.0437  0.0342  0.0348 0.0412  -0.0650
-0.1685 0.1113  -0.0399 -0.1207 -0.0243 0.1190   0.0300

例如来自新数据集的一些值:

 0.0015 0.0252   0.0159 0.0116  -0.0431 NA      -0.0058 
-0.0955 0.0373   0.0437 0        0.0348 0.0412  -0.065
-0.1685 0.1113  -0.0399 -0.1207 -0.0243 0.1190       NA

旧值可能是这样的:(我现在只是简化一下,旧数据与具有大量 0 且没有 NA 的新数据完全不同)

 0.0015 0.0252   0.0159  0.0116 -0.0431 0       -0.0058 
-0.0955 0.0373   0.0437  0.0036  0.0348 0.0412  -0.065
-0.1685 0.1113  -0.0399 -0.1207 -0.0243 0.1190   0

我的老板希望我将旧数据归入新数据,而不是将 0 值替换为不同模型生成的一些预测数字,而是将它们替换为 NA。

【问题讨论】:

  • 问题不是很清楚。您只想将 0 值转换为 NA 吗?
  • 可以,但只有0s中原本是NA的部分

标签: r replace na predict imputation


【解决方案1】:

如果您想用NAs 替换所有0s,您可以通过

df[df == 0] <- NA

但这当然也意味着,您正在替换最初为 0 的值。正如您所描述的那样,没有办法防止这种情况发生。您必须获取原始数据集(在您的数据库自动将 NA 更改为 0 之前)才能执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2020-02-13
    相关资源
    最近更新 更多