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

devtools/2024/11/15 3:59:08/

小小练习。见代码+注释

 
# 加载必要的包
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)

在这里插入图片描述


http://www.ppmy.cn/devtools/86444.html

相关文章

基于SpringBoot+Vue的漫画网站(带1w+文档)

基于SpringBootVue的漫画网站(带1w文档) 基于SpringBootVue的漫画网站(带1w文档) 在漫画信息管理方面还有许多改进。实际上如今信息化成为一个未来的趋势或者可以说在当前现代化的城市典范中,信息化已经成为主流,开发一个漫画网站一方面的可能会更合乎时宜,另一方面来说也可以提…

FFmpeg研究

1.FFmpeg介绍 FFmpeg的全称是“Fast Forward Moving Picture Expert Group”&#xff0c;组件由命令行应用程序和函数库两部分组成。通俗概括来说&#xff0c;FFmpeg 是一个免费的开源程序库&#xff0c;一个多媒体音视频处理分析工具软件&#xff0c;且提供命令行方式调用&am…

面向对象编程:一切皆对象

面向对象(OOP)是一种编程范式,它使用对象来设计软件。对象可以包含数据和代码&#xff1a;数据代表对象的状态&#xff0c;而代码代表操作数据的方式。在面向对象编程中&#xff0c;一切皆对象&#xff0c;这意味着将现实世界事务使用类与实例来模拟&#xff0c;如灯&#xff0…

Cocos Creator2D游戏开发-(1)初始化设置

初心: 做一款微信或者抖音小游戏,然后发布,对于我来说这是一个新的赛道; 写这些文档的原因,记录一下自己学习过程,下次用的时候方便找 cocos creator版本: 3.8.3 当前小游戏飞机大战教程来源于: 抖音: 禅影 chanying001 源码目录: https://www.kdocs.cn/l/caLr6XCbEfPa 创建一个…

数据结构——双向链表

目录 一、链表的分类 (1)单向或双向​编辑 &#xff08;2&#xff09;带头或不带头​编辑 &#xff08;3&#xff09;循环或不循环​编辑 &#xff08;4&#xff09;补充 二、实现双向链表 &#xff08;1&#xff09;List.h (2)List.c (3)注意 三、顺序表和链表的比较 四…

UPLOAD-LABS靶场[超详细通关教程,通关攻略]

---------------------------------------- 靶场环境&#xff1a; 下载链接&#xff1a; https://codeload.github.com/c0ny1/upload-labs/zip/refs/heads/master 使用小皮集成环境来完成这个靶场 将文件放到WWW目录下就可以进行访问 ------------------------------------…

Java面试八股之简述spring boot的目录结构

简述spring boot的目录结构 Spring Boot 项目遵循标准的 Maven 或 Gradle 项目布局&#xff0c;并且有一些约定的目录用于组织不同的项目组件。下面是一个典型的 Spring Boot 项目目录结构&#xff1a; src/main/java&#xff1a;包含所有的 Java 源代码&#xff0c;通常按包组…

新手必看:Elasticsearch 入门全指南

Elasticsearch 入门介绍 Elasticsearch 是一个开源的分布式搜索和分析引擎&#xff0c;广泛应用于处理大规模数据和实时搜索需求。它基于 Apache Lucene 构建&#xff0c;具备高可扩展性和分布式特性&#xff0c;能够快速、可靠地存储、搜索和分析大量数据。本文将介绍 Elasti…