【问题标题】:Convert lists inside a list to a character vector将列表中的列表转换为字符向量
【发布时间】:2019-02-11 02:49:38
【问题描述】:

我需要b 成为一个列表,但b 中的元素应该是一个字符向量

a <- list('foo bar','foobar')
b <- a %>% stringr::str_to_lower() %>% strsplit("[[:space:]]")

这里的ba 中每个元素的单词列表。但b[1] 也是一个列表。我需要b[1] 作为字符向量

试过unlist(b, recursive = FALSE)。但它正在将b 转换为向量。我只需要 b 是一个包含两个字符向量的平面列表 1) "foo" "bar" 2) "foobar"

【问题讨论】:

  • b[1] 将始终是一个列表,因为 [ 的工作方式。我认为你需要b[[1]] 这是一个向量
  • 那么它已经是一个有两个字符向量的列表了?
  • 是的。输入str(b)查看
  • 非常感谢!如果可能的话,您能否提供一个答案stackoverflow.com/questions/54624609/…

标签: r list vector


【解决方案1】:

b[1] 是一个列表,因为使用[i] 从列表中提取内容总是返回一个列表;如果 i 是长度为 1 的向量,那么您将获得长度为 1 的列表。b[[1]] 根据请求返回字符向量。

> b[[1]]
[1] "foo" "bar"
> str(b[[1]])
 chr [1:2] "foo" "bar"

作为哈德利·威克姆posted on twitter:

【讨论】:

  • 它仍然给了我一个列表中的列表。我需要在管道中添加一行,以便在列表'b'----“foo”中获得字符向量,“bar”是一个字符向量,“foobar”是另一个字符向量。所以 b 应该包含两个字符向量
  • 基本上我需要一个包含两个字符向量的平面列表
猜你喜欢
  • 2016-04-10
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
相关资源
最近更新 更多