我有一个向量“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
是否是因为向量中很少有元素是空的? 我该如何修复它?
最佳答案
假设我们定义并预处理一个字符向量:
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)
这将为您提供姓氏向量。
关于r - 字符向量上的 "subscript out of bounds",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18461499/