为什么字符列的类型是列表?

时间:2019-09-12 22:21:21

标签: r dplyr tibble

为什么通过地图列表创建的列类型?我希望它是一个字符列。如何将其转换为字符列?

t <- mtcars %>% mutate(new_col=map(mpg, function(x) as.character(x)))
typeof(t$new_col)

> [1] "list"

谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用map_chr()代替map()

然后你就可以写

mtcars %>% mutate(new_col = map_chr(mpg, as.character))

答案 1 :(得分:3)

map的结果是一个列表。将列表添加到数据框通常不明智,但是可以做到。另一个常见的错误是将POSIXlt的结果添加到数据帧。再次可以完成,但是后续操作可能会失败。您本可以使用以下功能:

> t <- mtcars %>% mutate(new_col=as.character(mpg))
> typeof(t$new_col)
[1] "character"