String 如何拆分字符串向量并将其重新组合为原始形式
我想拆分一个字符串向量,处理它的标记,然后以原始形式重新组合它String 如何拆分字符串向量并将其重新组合为原始形式,string,r,split,String,R,Split,我想拆分一个字符串向量,处理它的标记,然后以原始形式重新组合它 请考虑以下 vector.in <- c("red rum", "mur der", "red rum", "mur der") length(vector.in) # [1] 4 vector.splt <- strsplit(vector.in, "\\s") vector.splt <- unlist(vector.splt) vector.out <- paste(vector.splt, sep="
请考虑以下
vector.in <- c("red rum", "mur der", "red rum", "mur der")
length(vector.in)
# [1] 4
vector.splt <- strsplit(vector.in, "\\s")
vector.splt <- unlist(vector.splt)
vector.out <- paste(vector.splt, sep="", collapse=" ")
我应该如何处理它,以便输出与原始
向量具有相同形式和长度的向量。在
中,即不丢失任何信息?问题在于未列出
。这就过早地删除了结构。然后您需要围绕元素循环并传递到粘贴
函数。我将对循环使用lappy
:
vector.in <- c("red rum", "mur der", "red rum", "mur der")
vector.splt <- strsplit(vector.in, "\\s")
unlist(lapply(vector.splt, paste, collapse=' '))
## [1] "red rum" "mur der" "red rum" "mur der"
vector.in中的unlist
是问题所在。这就过早地删除了结构。然后您需要围绕元素循环并传递到粘贴
函数。我将对循环使用lappy
:
vector.in <- c("red rum", "mur der", "red rum", "mur der")
vector.splt <- strsplit(vector.in, "\\s")
unlist(lapply(vector.splt, paste, collapse=' '))
## [1] "red rum" "mur der" "red rum" "mur der"
中的gsubfn
函数执行该操作。例如,这里我们将输入拆分为单词,对每个单词应用一个函数(以公式表示法表示),在这种情况下,函数将每个单词括起来,然后我们将其全部放回一起:
> library(gsubfn)
> gsubfn("\\w+", ~ sprintf("(%s)", x), vector.in)
[1] "(red) (rum)" "(mur) (der)" "(red) (rum)" "(mur) (der)"
中的gsubfn
函数执行此操作。例如,这里我们将输入拆分为单词,对每个单词应用一个函数(以公式表示法表示),在这种情况下,函数将每个单词括起来,然后我们将其全部放回一起:
> library(gsubfn)
> gsubfn("\\w+", ~ sprintf("(%s)", x), vector.in)
[1] "(red) (rum)" "(mur) (der)" "(red) (rum)" "(mur) (der)"