在 R 中连接一个列表列
Concat a list column in R
我正在尝试连接 R 中列表列中的字符。
当我尝试这种方法时,结果不是 'abc' 而是一个转换为字符的向量。
什么是正确的方法?
library(tidyverse)
tibble(b=list(letters[1:3])) %>%
mutate(b = paste(b))
#> # A tibble: 1 x 1
#> b
#> <chr>
#> 1 "c(\"a\", \"b\", \"c\")"
由 reprex package (v0.3.0)
于 2020-10-14 创建
试试这个。请记住,tibble 中的元素是一个列表。因此,您可以使用以下任何一种方法:
library(tidyverse)
tibble(b=list(letters[1:3])) %>%
mutate(b = lapply(b,function(x)paste0(x,collapse = '')))
或者这样:
#Code 2
tibble(b=list(letters[1:3])) %>%
mutate(b = sapply(b,function(x)paste0(x,collapse = '')))
输出:
# A tibble: 1 x 1
b
<chr>
1 abc
在第一种情况下,您将在列表中获得结果,而在第二种情况下,您将以值的形式获得结果。
也许您需要以下内容
library(tidyverse)
tibble(b=list(letters[1:3])) %>%
mutate(b = sapply(b,paste,collapse = ""))
给予
# A tibble: 1 x 1
b
<chr>
1 abc
我们可以使用tidyverse
library(dplyr)
library(stringr)
library(purrr)
tibble(b=list(letters[1:3])) %>%
mutate(b = map_chr(b, str_c, collapse=""))
# A tibble: 1 x 1
# b
# <chr>
#1 abc
我正在尝试连接 R 中列表列中的字符。 当我尝试这种方法时,结果不是 'abc' 而是一个转换为字符的向量。 什么是正确的方法?
library(tidyverse)
tibble(b=list(letters[1:3])) %>%
mutate(b = paste(b))
#> # A tibble: 1 x 1
#> b
#> <chr>
#> 1 "c(\"a\", \"b\", \"c\")"
由 reprex package (v0.3.0)
于 2020-10-14 创建试试这个。请记住,tibble 中的元素是一个列表。因此,您可以使用以下任何一种方法:
library(tidyverse)
tibble(b=list(letters[1:3])) %>%
mutate(b = lapply(b,function(x)paste0(x,collapse = '')))
或者这样:
#Code 2
tibble(b=list(letters[1:3])) %>%
mutate(b = sapply(b,function(x)paste0(x,collapse = '')))
输出:
# A tibble: 1 x 1
b
<chr>
1 abc
在第一种情况下,您将在列表中获得结果,而在第二种情况下,您将以值的形式获得结果。
也许您需要以下内容
library(tidyverse)
tibble(b=list(letters[1:3])) %>%
mutate(b = sapply(b,paste,collapse = ""))
给予
# A tibble: 1 x 1
b
<chr>
1 abc
我们可以使用tidyverse
library(dplyr)
library(stringr)
library(purrr)
tibble(b=list(letters[1:3])) %>%
mutate(b = map_chr(b, str_c, collapse=""))
# A tibble: 1 x 1
# b
# <chr>
#1 abc