根据数据分数分配值

时间:2017-05-31 20:31:08

标签: r

所以我有一个非常大的数据集,它有一些丢失/坏数据。我想使用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

我正在寻找条件的分区基础。

1 个答案:

答案 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)