【问题标题】:Paste all strings stored in a vector into a single string, this for each string vectors in a list将存储在向量中的所有字符串粘贴到单个字符串中,这适用于列表中的每个字符串向量
【发布时间】:2017-04-12 04:57:46
【问题描述】:

这是示例代码的开始:

library(stringr)

Sentences_vector1 <- as.data.frame(rbind("toto a titi", "tata c m tztz itutu", "toto z titi l k tutu h tyty"), stringsAsFactors=F)
Sentences_vector2 <- as.data.frame(rbind("toto a titi", "tata c m tztz itutu", "toto z titi l k tutu h tyty"), stringsAsFactors=F)
Sentences_vectors <- cbind(Sentences_vector1, Sentences_vector2)

List_with_diff_nb_strings = str_match_all(Sentences_vectors$V1, "[a-zA-Z]{2,}")

现在,我正在尝试将存储在向量中的所有字符串粘贴到单个字符串中,这适用于列表中的每个字符串向量。请注意向量有不同的长度。

List_concacenated_strings = sapply(List_with_diff_nb_strings,function (x) base::paste(x, sep = " "))

因此,我想得到一个内容与此类似的结果:

list(c("toto titi"), c("tata tztz tutu"), c("toto titi tutu tyty"))

...但它不起作用,因为我无法指定列,因为它们的编号对于列表的每一行(具有不同长度的字符向量)都不同。

也许是因为在我真正的 R 代码中,命令:

str(List_with_diff_nb_strings[[3]])

返回:

chr [1:4, 1] "toto" "titi" "tutu" "tyty"

而不是像这样的“简单”向量:

chr [1:4] "toto" "titi" "tutu" "tyty"

有人可以帮我吗?提前致谢。

【问题讨论】:

标签: r


【解决方案1】:

将相应的代码行替换为以下内容:

List_concacenated_strings = as.list(sapply(List_with_diff_nb_strings,function (x) base::paste(x, sep = " ",collapse=" ")))

你会得到你想要的输出:

[[1]]
[1] "toto titi"

[[2]]
[1] "tata tztz tutu"

[[3]]
[1] "toto titi tutu tyty"

P.S.:这应该在 Stack Overflow 上

【讨论】:

    猜你喜欢
    • 2020-01-07
    • 2022-10-20
    • 2011-10-22
    • 2015-07-20
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多