gpt4 book ai didi

r - 如何将字符向量列表转换为单个向量?

转载 作者:行者123 更新时间:2023-12-03 22:13:41 24 4
gpt4 key购买 nike

谢谢你的时间。

我正在执行一些数据处理,并使用了 str_extract_all来自 stringr包以从列中提取一些数据。我的 str_extract_all call 使用了一些正则表达式逻辑来提取适当的信息。

然而,str_extract_all返回一个列表。我需要将此列表转换为向量,以便我可以将此向量作为新列包含在我的数据框中。

下面是一个可重现的示例。这是我返回的列表 str_extract_all :

example_list <- list("[10]",
"[44]",
c("[9]", "[32]", "[98]"),
NA,
"[93]")
example_list好像:
> example_list
[[1]]
[1] "[10]"

[[2]]
[1] "[44]"

[[3]]
[1] "[9]" "[32]" "[98]"

[[4]]
[1] NA

[[5]]
[1] "[93]"

我希望将此列表转换为相同长度的向量。这是我想要的向量:
desired_vector <- c("[10]",
"[44]",
c("[9], [32], [98]"),
NA,
"[93]")

这个向量看起来像这样。
> desired_vector
[1] "[10]" "[44]" "[9], [32], [98]" NA
"[93]"

或者,等效地,因为它会出现在数据框中并且不会打印到控制台, desired_vector将显示为:
[10]            
[44]
[9], [32], [98]
NA
[93]

注意:上面 desired_vector中的逗号不需要,空格或没有空格都可以。

我尝试了我发现的各种方法,包括 unlistflatten .
使用 unlist返回这个 not_desired 向量:
 not_desired_vector <- unlist(example_list)

看起来像这样:
> not_desired_vector
[1] "[10]" "[44]" "[9]" "[32]" "[98]" NA "[93]"

明确地说,我希望列表作为与原始列表长度相同的向量返回,其中具有三个连续元素的列表部分不是作为向量的三个元素返回,而是作为其中的一个字符串返回向量的单个元素。

再次感谢您的时间 - 任何朝着正确方向的努力都非常感谢。

最佳答案

使用 tidyverse工具map_chrstr_c ,我们可以遍历您的列表,将所有长度 > 1 的向量与逗号分隔符连接在一起:

example_list <- list("[10]",
"[44]",
c("[9]", "[32]", "[98]"),
NA,
"[93]")

library(tidyverse)
example_list %>% map_chr(~ str_c(., collapse = ", "))
#> [1] "[10]" "[44]" "[9], [32], [98]" NA
#> [5] "[93]"

创建于 2018-09-26 由 reprex package (v0.2.0)。

关于r - 如何将字符向量列表转换为单个向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52526455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com