R - 根据原始值

时间:2017-05-15 18:07:28

标签: r

我目前正在处理一个数据框,其中包含一个名为label的列,其值只有1和0。

例如,

x1 | x2 | label
0.1  0.2    1
0.1  0.3    1
0.2  0.5    0

如何将列标签中的值转换为if label = 1,则label变为+1,如果label = 0,则label变为-1

这是一个比我想要的结构

x1 | x2 | label
0.1  0.2    +1
0.1  0.3    +1
0.2  0.5    -1

此外,列标签当前是数字类型,我需要将其更改为因子以继续我的任务。

以下是将其更改为factor的代码。

df$label <- factor(df$label)

通常情况下,我会运行一个for循环来改变它。但是,有时会出现这样的情况:有很多标签导致我写了一个很长的for循环,我觉得它没有效果。

在这种情况下,什么是有效的解决方案。

非常感谢!

1 个答案:

答案 0 :(得分:2)

我们可以通过数字索引来替换值

c('-1', '+1')[(df1$label + 1)]

或使用labels

中的factor参数
factor(df1$label, labels = c('-1', '+1'))

ifelse

ifelse(df1$label>0, '+1', '-1')