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

How do I overwrite a column of characters in R with 1s and 0s?

我需要将我的数据列之一转换为二进制值。如果有空白 space,我尝试插入 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
}

对于这种情况,df$code <- as.numeric(df$code != '') 就足够了。

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

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

足以设置 0,因为 df$code == "" 会给你一个布尔向量,这些可以 select 出你想要分配 0 的条目。