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」はイニシャルにありますが、Name は空白です。Name2 の値を「John Paul」にします。「John Brown」は「John Brown」です)。 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 に答える