2017-05-15 109 views
2

我目前正在其含有一列称为标签仅具有值1和0的R - 在数据帧根据其原始值

例如在数据帧上变化值,

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

如何可以通过如果标签= 1,则标签变为1转换在列标签的值,并且如果标记= 0,则标签变为-1

这比我想的结构

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

另外,列标签当前是一个数字类型,我需要将其更改为继续执行我的任务。

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

df$label <- factor(df$label) 

通常,我会运行for循环来更改它。但是,有时会出现这样一种情况,即有很多标签会导致我写一个长循环,我认为这种循环无效。

在这种情况下,这将是一个有效的解决方案。

非常感谢!

+0

使用labels参数尝试'C(” -1','+1')[(df1 $ label + 1)]'或者使用'factor'方法'因子(df1 $ label,lab els = c(' - 1','+1'))' – akrun

+0

你明白了,你想发布你的答案吗?,谢谢 –

回答

2

我们可以通过数字索引这样做是为了替换值

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

或者在factor

factor(df1$label, labels = c('-1', '+1')) 

或用ifelse

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

非常感谢。 –