r - 将所有列转换为 data.frame 中的字符

标签 r dataframe tidyverse

考虑具有混合数据类型的 data.frame。

出于奇怪的目的,用户需要将所有列转换为字符。
怎么做最好?解决方案的 tidyverse 尝试是这样的:

map(mtcars,as.character) %>% map_df(as.list) %>% View()
c2<-map(mtcars,as.character) %>% map_df(as.list)

当我打电话时str(c2)它应该说一个包含所有字符的 tibble 或 data.frame。

另一个选项是 write.csv() 的一些参数设置或在 write_csv()在生成的文件输出中实现相同的功能。

最佳答案

编辑:2021-03-01
从 dplyr 1.0.0 开始,_all()函数变体被取代。实现此目的的新方法是使用新的 across()功能。

library(dplyr)
mtcars %>%
  mutate(across(everything(), as.character))
across() ,我们使用 tidyselect helpers 选择要修改的列集(这里我们使用 everything() 来选择所有列),然后指定我们要应用于每个选定列的函数。在这种情况下,即 as.character() .
原答案:
您也可以使用 dplyr::mutate_all .
library(dplyr)
mtcars %>%
  mutate_all(as.character)

关于r - 将所有列转换为 data.frame 中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43789278/

相关文章:

r - 在 `scale_fill_` 中使用多个 `ggplot2`

使用 1 列中的值作为新数据帧中的列名称来 reshape R 中的数据帧

python - Pandas 扁平化分层多索引

r - 将 R 数据帧转换为 JSON,同时将每一行分隔为一个新的 JSON 对象

r - 使用 rowwise() 时如何处理整行?

r - 尝试从 FiveThirtyEight 抓取数据时出现错误

r - DEoptim包中步长参数解释

python - Pandas performance : loc vs using . head(x) in first x rows using Sorted Data

r - 从分布到置信区间的寓言

r - 如何根据 R 中列中的值组合排除行?