如何用1和0覆盖R中的一列字符?

时间:2015-02-02 21:53:34

标签: r if-statement binary data-conversion

我需要将我的数据中的一列转换为二进制值。我想在有空格时插入0,如果有字符串则插入1。

我的数据目前看起来像这样:

Name     Code
Bob      
Joe     f59tuc
Anna    
Kylie
Jill    hyt618
Ben     skt310

我正在尝试将其转换为:

name     code
Bob       0
Joe       1
Anna      0
Kylie     0
Jill      1
Ben       1

我尝试了这个if语句,但是得到了错误。我是R的新手,对if语句,while循环,for循环等有很少的经验 - 所以在代码中可能会有一些我没想到的明显错误。任何帮助都将非常感激。

if (df$code[df$code == ""]) {
    df$code[df$code] <- 0
} 
else {
    df$code[df$code] <- 1
}

1 个答案:

答案 0 :(得分:7)

对于这种情况,只需df$code <- as.numeric(df$code != '')即可。

如果你真的需要使用if else,那么

df$code[df$code == ""] <- 0

足以设置0,因为df$code == ""会给你一个bool矢量,这些可以选择你想要分配0的条目。