当前位置: 首页 > news >正文

R语言 爬取数据+简单清洗

小小练习。见代码+注释

 
# 加载必要的包
library(rvest)
library(dplyr)
library(tidyr)# 指定网页URL
url <- "https://research.un.org/en/unmembers/scmembers"# 读取网页内容
webpage <- read_html(url)# 提取所有表格节点
table_nodes <- html_nodes(webpage, "table")# 将第一个表格转换为数据框
sc_members_table1 <- html_table(table_nodes[1], fill = TRUE)
# 将第二个表格转换为数据框
sc_members_table2 <- html_table(table_nodes[2], fill = TRUE)# 合并两个数据框
sc_members_combined <- bind_rows(sc_members_table1, sc_members_table2)# 显示合并后的数据框
print(sc_members_combined)# 保存合并后的数据框为CSV文件
write.csv(sc_members_combined, "web_data.csv", row.names = FALSE)# ------------------------------ 处理数据。  ------------------------------ # 读取CSV文件
data <- read.csv("web_data.csv", stringsAsFactors = FALSE)
data# 删掉最后一列
data <- data[, -ncol(data)]head(data, 2)# 拆分Members of Security Council列print(colnames(data))# Members.of.Security.Council# 分割国家为单独的行 Members of Security Council
data_split <- data %>%separate_rows(`Members.of.Security.Council`, sep = ", ") %>%select(Year, `Members.of.Security.Council`)# 重命名列
colnames(data_split) <- c("Year", "Country")# 列出联合国常任理事国的英文名字
permanent_members <- c("China", "France", "Russian Federation", "United Kingdom", "United States")# 新建一列 votes,所有值为 1
data_split <- data_split %>%mutate(votes = 1)# 新建一列 veto,对于常任理事国,veto 值为 1,否则为 0
data_split <- data_split %>%mutate(veto = ifelse(Country %in% permanent_members, 1, 0))# 新建一列 vote_share,根据 Year 列的值进行计算
data_split <- data_split %>%mutate(vote_share = ifelse(Year >= 1996, 1/15, 1/11))# 保存结果到新的CSV文件
write.csv(data_split, "clean_data.csv", row.names = FALSE)# 查看结果
print(data_split)

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【前端学习笔记】CSS基础一
  • 2023河南萌新联赛第(二)场 南阳理工学院
  • 在MySQL中处理同时进行的SELECT和UPDATE操作20240729
  • TCP/IP 网络模型详解(二)之输入网址到网页显示的过程
  • 嵌入式初学-C语言-八
  • Computer Analysis and Visualisation CITS2401
  • [C#]调用本地摄像头录制视频并保存
  • Python 环境管理大师:Virtualenv
  • redis存储结构
  • 蓝牙网关厂家推荐:北京桂花网科技有限公司
  • CSS 创建:从入门到精通
  • 力扣高频SQL 50题(基础版)第二十六题
  • 3.5.2、查找和排序算法-查找算法
  • 【区块链】浅谈面向小白的关于BlockChain那些事
  • 监控网络丢包脚本
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • ES6之路之模块详解
  • java8 Stream Pipelines 浅析
  • java8-模拟hadoop
  • JAVA之继承和多态
  • js递归,无限分级树形折叠菜单
  • linux安装openssl、swoole等扩展的具体步骤
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Puppeteer:浏览器控制器
  • Python打包系统简单入门
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • SQLServer之创建数据库快照
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 简单实现一个textarea自适应高度
  • 码农张的Bug人生 - 初来乍到
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 如何编写一个可升级的智能合约
  • 树莓派 - 使用须知
  • 硬币翻转问题,区间操作
  • #if #elif #endif
  • #include到底该写在哪
  • #预处理和函数的对比以及条件编译
  • $nextTick的使用场景介绍
  • (3)STL算法之搜索
  • (C语言)共用体union的用法举例
  • (C语言)球球大作战
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (万字长文)Spring的核心知识尽揽其中
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (译) 函数式 JS #1:简介
  • (转)http-server应用
  • (转)socket Aio demo
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考