r - 将字符数据构造成数据框
问题描述
我在 R 中使用 rvest 包来抓取一些网络数据,但我在将其转换为可用格式时遇到了很多麻烦。
我的数据目前如下所示:
test
[1] "v. Philadelphia"
[2] "TD GardenRegular Season"
[3] "PTS: 23. Jayson TatumREB: 10. M. MorrisAST: 7. Kyrie Irving"
[4] "PTS: 23. Joel EmbiidREB: 15. Ben SimmonsAST: 8. Ben Simmons"
[5] "100.7 - 83.4"
[6] "@ Toronto"
[7] "Air Canada Centre Regular Season"
[8] "PTS: 21. Kyrie IrvingREB: 10. Al HorfordAST: 9. Al Horford"
[9] "PTS: 31. K. LeonardREB: 10. K. LeonardAST: 7. F. VanVleet"
[10] "115.6 - 103.3"
有人可以帮助我执行正确的操作以使其看起来像这样(作为数据框)并提供代码,我将非常感激:
Opponent Venue
Philadelphia TD Garden
Toronto Air Canada Centre
我不需要任何其他信息。
解决方案
让我知道是否有任何问题:)
# put your data in here
input <- c("v. Philadelphia", "TD GardenRegular Season",
"", "", "",
"@ Toronto", "Air Canada Centre Regular Season",
"", "", "")
index <- 1:length(input)
# raw table format
out_raw <- data.frame(Opponent = input[index%%5==1],
Venue = input[index%%5==2])
# using stringi package
install.packages("stringi")
library(stringi)
# copy and clean up
out_clean <- out_raw
out_clean$Opponent <- stri_extract_last_regex(out_raw$Opponent, "(?<=\\s).*$")
out_clean$Venue <- trimws(gsub("Regular Season", "", out_raw$Venue))
out_clean
推荐阅读
- spring - Spring security:如何为某些匹配器启用匿名,但为其余匹配器禁用它?
- apache-spark - Spark HiveContext 获得与 hive 客户端选择相同的格式
- opengl - 纹理不起作用 - OpenGL
- vue.js - Vue.js 函数多次调用
- c++ - Tesseract C++:指定要查找的字符数量
- javascript - ag-grid - 页面加载时刷新
- ios - 如何在 Swift 3 中创建类似于 WhatsApp 的部分标题列表?
- c# - SendGrid 附件错误:无法从“System.IO.MemoryStream”转换为“字符串”
- omnet++ - 发送到无线网络中最近的节点
- python - 如何根据 Selenium 中的值结尾来查找元素?