【发布时间】:2015-05-25 14:07:10
【问题描述】:
我有一个列表,其中每个列表组件都有一个字符串向量。每个字符串向量的长度为 1,包含一个或多个用空格分隔的单词(原始列表要大得多):
> f <- list("one", "two three", "four", "five six seven")
> f
[[1]]
[1] "one"
[[2]]
[1] "two three"
[[3]]
[1] "four"
[[4]]
[1] "five six seven"
我需要做的是在每个组件中的字符串之前和之后粘贴字符串,具体取决于它是否包含一个或多个单词。我寻找的结果是这样的:
[[1]]
[1] "Single number: one."
[[2]]
[1] "Multiple numbers: two three."
[[3]]
[1] "Single number: four."
[[4]]
[1] "Multiple numbers: five six seven."
我尝试了以下方法,用stringr 包中的str_count 计算每个字符串中的单词数:
x <- lapply(f, function(j) {
if(str_count(string = f[[j]], pattern = "\\S+") == 1) {
xx[[j]] <- paste("Single number: ", f[[j]], ".", sep = "")
} else {
xx[[j]] <- paste("Multiple numbers: ", f[[j]], ".", sep = "")
}
})
但是,我收到以下错误:
Error in if (str_count(string = f[[j]], pattern = "\\S+") == 1) { :
argument is of length zero
有人可以帮忙吗?
【问题讨论】:
标签: r string conditional-statements paste