我目前正在处理一个数据框,其中包含一个名为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循环,我觉得它没有效果。
在这种情况下,什么是有效的解决方案。
非常感谢!
答案 0 :(得分:2)
我们可以通过数字索引来替换值
c('-1', '+1')[(df1$label + 1)]
或使用labels
factor
参数
factor(df1$label, labels = c('-1', '+1'))
或ifelse
ifelse(df1$label>0, '+1', '-1')