1

c("Mark Twain", "Phil Hall", "Michael P. O'Connor", " ",...) などのベクトル "nameAlpha" があります。それぞれの名を別のベクトル「nameAlpha_first」に渡したいと思います。私はこれを実行します

nameAlpha_first <- sapply(strsplit(nameAlpha, "\\s+"), "[[", 1)

しかし、私は得る

Error in FUN(X[[12L]], ...) : subscript out of bounds

ベクトルのほとんどの要素が空であるためでしょうか? 修正するにはどうすればよいですか?

4

1 に答える 1

4

文字ベクトルを次のように定義して前処理するとします。

nameAlpha<-c("Mark Twain", NA, "Phil Hall", 
             "Michael P. O'Connor", " ", "", NA, "John")
nameAlpha[which(nchar(nameAlpha)<2)]<-NA

あなたは書くべきです

sapply(strsplit(nameAlpha, "\\s+"), head, n=1)

そしてそれはうまくいくでしょう。姓が必要な場合は、行うことができます

sapply(strsplit(nameAlpha, "\\s+"), tail, n=1)

これにより、姓のベクトルが提供されます。

于 2013-08-27T09:21:19.080 に答える