1

我有一个带有一系列首字母和名称的数据框。但是,有时姓名会错误地出现在“姓名缩写”字段中,而“姓名”字段为空白。它看起来像这样:

Initials <- c('JB', 'MJ', 'SF', 'Obi Wan Kanobi', 'Luke Skywalker', 'LO', 'Darth 
              Vader', 'JS', 'MM', 'John Paul')
Name <- c('John Brown', 'Mike Jones', 'Sally Fields', '', '', 'Leia Organa', '', 
           'Joey Scarface', 'Marilyn Monroe', '')
test <- data.frame(Initials, Name)

我想创建一个 Name2 字段,其中 Name 字段中的任何空白都用 Initials 字段中的相应名称填充。否则,我只想使用 Name 字段中的值填充 Name2 字段(例如,'John Paul' 在 Initials 中,但 Name 为空白 - 我希望 Name2 具有值 'John Paul'。'John Brown' 是在 Name 中,我希望它只显示在 Name2 中)。

我尝试了以下代码,但它只是为 Name2 吐出一个数字向量:

test$Name2 <- ifelse(test$Name == '', test$Initials, test$Name)
4

1 回答 1

1

这是正确定义字段类型的简单问题。在这种情况下,我的所有输入字段都被识别为因素而不是字符。所以成功的代码是这样的:

test$Name2 <- ifelse(test$Name == '', as.character(test$Initials), as.character(test$Name))
于 2013-09-20T18:58:36.377 回答