在数据帧中将数据转换为二进制

时间:2014-01-14 22:34:29

标签: r binary

此表名为'temp'

   No. of times   Clear   Included    Percentage
         2           1        1           0.50
         4           0        1           0.60
         0           0        0           0.20

例如,如果我有这个数据集,我想在'No.下转换0以上的所有数字。时间'列到1并保持0原样。

总的来说,我想要一个看起来像这样的数据集

    No. of times   Clear   Included    Percentage
         1           1        1           0.50
         1           0        1           0.60
         0           0        0           0.20

我该怎么做?

3 个答案:

答案 0 :(得分:5)

temp[ ,"No. of times"] <- sign(temp[ ,"No. of times"])

答案 1 :(得分:3)

使用ifelse的好地方

 temp$`No. of times` <- ifelse(temp$`No. of times` > 0, 1, 0)

另外,您可能想要使用

names(temp) <- make.names(names(temp))

答案 2 :(得分:2)

一招,但

temp[ , "No. of times"] <- (temp[ , "No. of times"] > 0) + 0

也会执行您想要的操作。我说一个技巧,因为括号中的部分(temp[ , "No. of times"] > 0)评估为逻辑,然后通过添加0强制转换为10