r - 将字符变量分成两列
问题描述
我从 url 中抓取了一些数据来分析骑行结果。不幸的是,在一个字段中存在名称和团队名称的名称列。我想从彼此中提取这些。这是代码(最后一部分不起作用)
#get url
stradebianchi_2020 <- read_html("https://www.procyclingstats.com/race/strade-bianche/2020/result")
#scrape table
results_2020 <- stradebianchi_2020%>%
html_nodes("td")%>%
html_text()
#transpose scraped data into dataframe
results_stradebianchi_2020 <- as.data.frame(t(matrix(results_2020, 8, byrow = F)))
#rename
names(results_stradebianchi_2020) <- c("rank", "#", "name", "age", "team", "UCI point", "PCS points", "time")
#split rider from team
separate(data = results_stradebianchi_2020, col = name, into = c("left", "right"), sep = " ")
我认为最好的选择是获取团队变量名称并使用该名称将其从“名称”列中删除。
欢迎所有建议!
解决方案
我认为您的要求表述错误。你想team
从name
.
在我看来,你应该这样做:
results_stradebianchi_2020 %>%
mutate(name = stringr::str_remove(name, team))
用 .写这个而不是你的行separate
。
在这种情况下separate
,对您来说不是最佳解决方案,因为分隔字符没有明确定义。
另外,我建议您从name
with中删除初始空白stringr::str_trim(name)
推荐阅读
- javascript - 我可以为导入的 NPM 包使用 tsconfig 的路径别名吗?
- java - 运行项目Android Studio java时崩溃
- canvas - 如何获取画布apiRest上任何图像的事件点击
- php - Laravel whereRelation 与另一个数据库连接
- java - 如何创建一个包含可选的哈希图,并在检索它时为我提供值或 Optional.empty 但有限制
- c++ - 在 C++ 中查找数据类型的大小
- python - 检查列表中的特定连续值
- javascript - React - 本地开发和生产构建之间的生命周期行为(componentDidMount)变化
- angular - 如何在 primng 下拉框 Angular 中添加额外的自定义按钮
- sql - 如何在子表的外键列中分配新创建的父ID时,将父子数据从一个数据库复制到另一个数据库?