所以我有一个非常大的数据集,它有一些丢失/坏数据。我想使用IF else语句对缺失的数据进行编码。我没有为所有缺失/坏的值分配一个值,而是想在分数上分配基数。
例如,对于下面的df:
将df$col2==B
的50%分配给BLUE,将另外50%分配给RED
col1 col2
1 a
2 a
3 b
4 b
我知道你可以这样做:
if else( df$col2==b, "BLUE", df$col1)
但我想:
col1 col2
1 a
2 a
3 BLUE
4 RED
我正在寻找条件的分区基础。
答案 0 :(得分:0)
你可以通过生成一个" Red"的矢量来做到这一点。和"蓝"在需要时选择替换。
## Generate some random data with missing values
set.seed(2017)
a = sample(c("Red", "Blue"), 20, replace=TRUE)
a = ifelse(runif(20, 0, 1) < 0.12, NA, a)
## Now replace missing
a = ifelse(is.na(a),
sample(c("Red", "Blue"), length(a), replace=TRUE, prob=c(0.5,0.5)), a)