R语言 | 数据操作dplyr包

[更新~] Python网络爬虫与文本数据分析

公众号只带着Python字眼,却分享着R语言,不务正业,任性了~

dplyr简介

dplyr是R语言的数据分析包,很像python中的pandas,能对dataframe类型的数据做很方便的数据处理和分析操作。最初我也很奇怪dplyr这个奇怪的名字,我查到其中一种解释

  • d代表dataframe

  • plyr是英文钳子plier的谐音

library(tidyverse)
## ── Attaching packages ────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.1     ✓ purrr   0.3.3
## ✓ tibble  3.0.1     ✓ dplyr   1.0.0
## ✓ tidyr   1.1.0     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── Conflicts ───────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
tidyverse::tidyverse_packages()
##  [1] "broom"      "cli"        "crayon"     "dbplyr"     "dplyr"     
##  [6] "forcats"    "ggplot2"    "haven"      "hms"        "httr"      
## [11] "jsonlite"   "lubridate"  "magrittr"   "modelr"     "pillar"    
## [16] "purrr"      "readr"      "readxl"     "reprex"     "rlang"     
## [21] "rstudioapi" "rvest"      "stringr"    "tibble"     "tidyr"     
## [26] "xml2"       "tidyverse"

读取数据

tidyverse含有readr,所以不用导入readr

#用readr包导入csv数据
aapl <- readr::read_csv('data/aapl.csv') 
## Parsed with column specification:
## cols(
##   Date = col_character(),
##   Open = col_double(),
##   High = col_double(),
##   Low = col_double(),
##   Close = col_double(),
##   Volume = col_double()
## )
aapl

查看数据基本信息

这里使用的是R语言的基本函数,不用导入包就可以使用

数据类型

class(aapl)
## [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"

字段

colnames(aapl)
## [1] "Date"   "Open"   "High"   "Low"    "Close"  "Volume"

记录数、字段数

dim(aapl)
## [1] 251   6

前5条记录

head(aapl, n=5)

查看dplyr用例

vignette("dplyr")
## starting httpd help server ... done

dplyr常用函数

Arrange

对appl数据按照字段Volume进行降序排序。为了写作方便,我就不再写完整的调用,在这里arrange()代替 dplyr::arrange()

library(dplyr)
#dplyr::arrange(aapl, -Volume)
arrange(aapl, -Volume)

管道符 %>%

在dplyr中,有一个管道符%>%,符号左侧表示数据的输入,右侧表示下游数据处理环节。

我们可以用管道符 %>% 改写上面的代码,两种写法得到的运行结果是一致的,用久了会觉得管道符 %>% 可读性更强,后面我们都会用 %>% 来写代码。

aapl %>% arrange(-Volume)

Select

选取 Date、Close和Volume三列

aapl %>% select(Date, Close, Volume)

只选取Date、Close和Volume三列,其实另外一种表达方式是“排除Open、High、Low,选择剩下的字段的数据”。

aapl %>% select(-c("Open", "High", "Low"))

Filter

按照筛选条件选择数据

#从数据中选择appl股价大于150美元的交易数据
aapl %>% filter(Close>=150)

从数据中选择appl

  • 股价大于150美元 且 收盘价大于开盘价
    的交易数据

aapl %>% filter((Close>=150) & (Close>Open))

Mutate

将现有的字段经过计算后生成新字段。

#将最好价High减去最低价Low的结果定义为maxDif,并取log
aapl %>% mutate(maxDif = High-Low,
                log_maxDif=log(maxDif))

得到记录的位置(行数)

aapl  %>% mutate(n=row_number())

Group_By

对资料进行分组,这里导入新的 数据集 weather

#导入csv数据
weather <- readr::read_csv('data/weather.csv') %>% as_tibble()
## Parsed with column specification:
## cols(
##   Date = col_character(),
##   city = col_character(),
##   temperature = col_double(),
##   windspeed = col_double(),
##   event = col_character()
## )
weather

按照城市分组

weather %>% group_by(city)

为了让大家看到分组的功效,咱们按照城市分别计算平均温度

weather %>% 
    group_by(city) %>% 
    summarise(mean_temperature = mean(temperature))
## `summarise()` ungrouping output (override with `.groups` argument)

weather %>%  
    summarise(mean_temperature = mean(temperature))

R语言相关

R语言 | 读写txt、csv、excel文件

近期文章

plotnine: Python版的ggplot2作图库 

小案例: Pandas的apply方法 
stylecloud:简洁易用的词云库

用Python绘制近20年地方财政收入变迁史视频

Python网络爬虫与文本数据分析

读完本文你就了解什么是文本分析 
文本分析在经管领域中的应用概述
综述:文本分析在市场营销研究中的应用
从记者的Twitter关注看他们稿件的党派倾向?

Pandas时间序列数据操作
70G上市公司定期报告数据集
文本数据清洗之正则表达式
shreport库: 批量下载上海证券交易所上市公司年报
Numpy和Pandas性能改善的方法和技巧
漂亮~pandas可以无缝衔接Bokeh
YelpDaset: 酒店管理类数据集10+G

后台回复关键词【dplyr】获取本文代码和数据

分享”和“在看”是更好的支持!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值