r - 在使用`bind_rows()`之前更改数据框列表中所有列的数据类型
问题描述
我有一个数据框列表,例如来自以下代码:
"https://en.wikipedia.org/wiki/List_of_accidents_and_disasters_by_death_toll" %>%
rvest::read_html() %>%
html_nodes(css = 'table[class="wikitable sortable"]') %>%
html_table(fill = TRUE)
我现在想将数据帧合并为一个,例如,dplyr::bind_rows()
但得到Error: Can't combine
..1$Deaths <integer> and
..5$Deaths (这里 <character>.
建议的答案没有解决问题)。
所以我需要在使用行绑定之前转换数据类型。我想在管道内使用它(一个 tidyverse 解决方案是理想的),并且由于剩余项目的结构而不是循环遍历数据帧,而是使用类似矢量化的东西lapply(., function(x) {lapply(x %>% mutate_all, as.character)})
(这不起作用)将所有值转换为character
.
有人可以帮我弄这个吗?
解决方案
您可以将所有列类更改为字符并将它们绑定在一起map_df
。
library(tidyverse)
library(rvest)
"https://en.wikipedia.org/wiki/List_of_accidents_and_disasters_by_death_toll" %>%
rvest::read_html() %>%
html_nodes(css = 'table[class="wikitable sortable"]') %>%
html_table(fill = TRUE) %>%
map_df(~.x %>% mutate(across(.fns = as.character)))
# Deaths Date Attraction `Amusement park` Location Incident Injuries
# <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#1 28 14 Feb… Transvaal Park (entire … Transvaal Park Yasenevo, Mosc… NA NA
#2 15 27 Jun… Formosa Fun Coast music… Formosa Fun Coast Bali, New Taip… NA NA
#3 8 11 May… Haunted Castle; a fire … Six Flags Great … Jackson Townsh… NA NA
#4 7 9 June… Ghost Train; a fire at … Luna Park Sydney Sydney, Austra… NA NA
#5 7 14 Aug… Skylab; a crane collide… Hamburger Dom Hamburg, (Germ… NA NA
# 6 6 13 Aug… Virginia Reel; a fire a… Palisades Amusem… Cliffside Park… NA NA
# 7 6 29 Jun… Eco-Adventure Valley Sp… OCT East Yantian Distri… NA NA
# 8 5 30 May… Big Dipper; the roller … Battersea Park Battersea, Lon… NA NA
# 9 5 23 Jun… Kuzuluk Aquapark swimmi… Kuzuluk Aquapark Akyazi, Turkey… NA NA
#10 4 24 Jul… Big Dipper; a bolt came… Krug Park Omaha, Nebrask… NA NA
# … with 1,895 more rows
推荐阅读
- typescript - React Native with Typescript and Jest 在 0.57 更新后被破坏:找不到相对于目录的预设“module:metro-react-native-babel-preset”
- elasticsearch - Elasticsearch 搜索被勒索软件锁定
- java - 如何使内部 Java 包在 Eclipse 中可访问?
- javascript - Owl Carousel 2 - 关于触发点击事件的更改问题
- laravel - 在段落标签中显示文本框值
- python - Python matplotlib colorbars:全部在最后一个轴上
- python - 使用 BeautifulSoup 从 html 文件中提取特定文本
- php - 如何从 Laravel 的集合中删除选定的项目?
- sql-server - 根据创建日期对表进行分区
- kubernetes-helm - 如何在其他变量循环中使用 .Values