簡體   English   中英

將存儲在向量中的所有字符串粘貼到單個字符串中,這適用於列表中的每個字符串向量

[英]Paste all strings stored in a vector into a single string, this for each string vectors in a list

這是示例代碼的開頭:

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"

有誰能夠幫助我? 提前致謝。

用以下代碼替換相應的代碼行:

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"

PS:這應該在堆棧溢出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM