1

我有一个向量“nameAlpha”,例如 c("Mark Twain", "Phil Hall", "Michael P. O'Connor", " ",...)。我想将每个名字传递给另一个向量“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 回答