我有一个矢量“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
可能是因为向量的少数元素是空的吗? 我该如何解决这个问题?
答案 0 :(得分:2)
假设我们定义并预处理字符向量:
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)
将为您提供姓氏向量。