为每个列值公平地分配NA值

时间:2018-06-16 20:46:45

标签: r dataframe

在数据框列中,我有778个NA值。

本专栏中有21个唯一值。

我想将NA值公平地分配给所有这21个值。

示例:

37 NA values = 1, 37 NA values = 2 etc...

我该怎么做?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

一种选择是使用sample。假设您的列名为v,那么您可以尝试:

选项#1:

v[is.na(v)] <- sample(v[!is.na(v)], length(v[is.na(v)]), replace = TRUE,
      prob = rep(1, length(v[!is.na(v)])))

选项#2:使用带有参数rep_len的{​​{1}}可以实现另一个更准确的选项:

length.out