R语言data manipulation学习笔记之subset data
taoyan:R语言中文社区特约作家,伪码农,R语言爱好者,爱开源。
个人博客: https://ytlogos.github.io/
公众号:生信大讲堂
往期回顾
R语言可视化学习笔记之相关矩阵可视化包ggcorrplot
R语言学习笔记之相关性矩阵分析及其可视化
ggplot2学习笔记系列之利用ggplot2绘制误差棒及显著性标记
ggplot2学习笔记系列之主题(theme)设置
用circlize包绘制circos-plot
利用gganimate可视化R-Ladies发展情况
一篇关于国旗与奥运会奖牌的可视化笔记
利用ggseqlogo绘制seqlogo图
R语言data manipulation学习笔记之创建变量、重命名、数据融合
数据分析过程中我们常常需要从数据集中抽取部分数据,本文将介绍如何提取子数据集,主要利用R自带的函数,以后会专门介绍data manipulation包dplyr。 提取子数据集主要分为select以及exclude,这里主要介绍两种方法,一是利用操作符[]进行选取,二是利用subset()进行抽取。
利用[]进行提取
#use the iris dataset
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
# check the column namenames(iris)
## [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
加入我们想要提取Sepal.Length、Sepal.Width两列数据,可以使用如下代码:
dt1 <- iris[, c("Sepal.Length","Sepal.Width")]head(dt1)
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
## 3 4.7 3.2
## 4 4.6 3.1
## 5 5.0 3.6
## 6 5.4 3.9
#也可以直接用列序号代替,比如这里我们想要提要前两列
dt2 <- iris[, c(1, 2)]head(dt2)
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
## 3 4.7 3.2
## 4 4.6 3.1
## 5 5.0 3.6
## 6 5.4 3.9
如果我们需要删除前两列,只需在序号之前添加符号 - 就行
dt3 <- iris[, c(-1, -2)]head(dt3)
## Petal.Length Petal.Width Species
## 1 1.4 0.2 setosa
## 2 1.4 0.2 setosa
## 3 1.3 0.2 setosa
## 4 1.5 0.2 setosa
## 5 1.4 0.2 setosa
## 6 1.7 0.4 setosa
可以看出十分简单就可以提取子数据集,下面介绍subset(),subset()相比于[]主要是可以方便的根据条件提取子数据集。
利用subset()进行提取
#create a dataset
fy <- c(2010,2011,2012,2010,2011,2012,2010,2011,2012)
company <- c("Apple","Apple","Apple","Google","Google","Google","Microsoft","Microsoft","Microsoft")
revenue <- c(65225,108249,156508,29321,37905,50175,62484,69943,73723)
profit <- c(14013,25922,41733,8505,9737,10737,18760,23150,16978)
companiesData <- data.frame(fy, company, revenue, profit)
head(companiesData)
## fy company revenue profit
## 1 2010 Apple 65225 14013
## 2 2011 Apple 108249 25922
## 3 2012 Apple 156508 41733
## 4 2010 Google 29321 8505
## 5 2011 Google 37905 9737
## 6 2012 Google 50175 10737
假如我们想要提取revenue超过十万的公司
com1 <- subset(companiesData, revenue>100000)
head(com1)
## fy company revenue profit
## 2 2011 Apple 108249 25922
## 3 2012 Apple 156508 41733
或者我们想要提取在2012年revenue超过6万的公司
com2 <- subset(companiesData, fy=="2012"&revenue>60000)
head(com2)
## fy company revenue profit
## 3 2012 Apple 156508 41733
## 9 2012 Microsoft 73723 16978
或者提取在2012年revenue超过6万、profit超过4万的公司
com3 <- subset(companiesData, fy=="2012"&revenue>60000&profit>40000)
com3
## fy company revenue profit
## 3 2012 Apple 156508 41733
条件选择也可以使用或,比如我们想要提取profit超过2万或者revenue低于5万的公司
com4 <- subset(companiesData, revenue<50000|profit>20000)
com4
## fy company revenue profit
## 2 2011 Apple 108249 25922
## 3 2012 Apple 156508 41733
## 4 2010 Google 29321 8505
## 5 2011 Google 37905 9737
## 8 2011 Microsoft 69943 23150
本文只是粗略的讲解,其实subset()的用法很广,有兴趣的朋友可以自行探索。
SessionInfo
sessionInfo()
## R version 3.4.0 (2017-04-21)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.2 LTS
##
## Matrix products: default
## BLAS: /usr/lib/atlas-base/atlas/libblas.so.3.0
## LAPACK: /usr/lib/atlas-base/atlas/liblapack.so.3.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] compiler_3.4.0 backports_1.1.0 magrittr_1.5 rprojroot_1.2
## [5] tools_3.4.0 htmltools_0.3.6 yaml_2.1.14 Rcpp_0.12.11
## [9] stringi_1.1.5 rmarkdown_1.6 knitr_1.16 stringr_1.2.0
## [13] digest_0.6.12 evaluate_0.10.1
2017年R语言发展报告(国内)
R语言中文社区历史文章整理(作者篇)
R语言中文社区历史文章整理(类型篇)
公众号后台回复关键字即可学习
回复 R R语言快速入门及数据挖掘
回复 Kaggle案例 Kaggle十大案例精讲(连载中)
回复 文本挖掘 手把手教你做文本挖掘
回复 可视化 R语言可视化在商务场景中的应用
回复 大数据 大数据系列免费视频教程
回复 量化投资 张丹教你如何用R语言量化投资
回复 用户画像 京东大数据,揭秘用户画像
回复 数据挖掘 常用数据挖掘算法原理解释与应用
回复 机器学习 人工智能系列之机器学习与实践
回复 爬虫 R语言爬虫实战案例分享
R语言data manipulation学习笔记之subset data相关推荐
- 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)
学习者:骆栢维 题目来源:生信基石之R语言 中级10 个题目:http://www.bio-info-trainee.com/3750.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...
- R语言与机器学习学习笔记(分类算法)
转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...
- R语言dplyr包学习笔记(吐血整理宇宙无敌详细版)
出处:AI入门学习 dplyr包主要用于数据清洗和整理,主要功能有:行选择.列选择.统计汇总.窗口函数.数据框交集等是非常高效.友好的数据处理包,学清楚了,基本上数据能随意玩弄,对的,随意玩弄,简直大 ...
- R语言与点估计学习笔记(刀切法与最小二乘估计)
一. 刀切法(jackknife) 刀切法的提出,是基于点估计准则无偏性.刀切法的作用就是不断地压缩偏差.但需要指出的是缩小偏差并不是一个好的办法,因为偏差趋于0时,均方误差会变得十分大. ...
- 【转载】R语言与数据挖掘学习笔记
(1):数据挖掘相关包的介绍 今天发现一个很不错的博客(http://www.RDataMining.com),博主致力于研究R语言在数据挖掘方面的应用,正好近期很想系统的学习一下R语言和数据挖掘的整 ...
- R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...
学习者:骆栢维 题目来源:生信基石之R语言 初级10 个题目:http://www.bio-info-trainee.com/3793.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...
- R语言与点估计学习笔记(矩估计与MLE)
众所周知,R语言是个不错的统计软件.今天分享一下利用R语言做点估计的内容.主要有:矩估计.极大似然估计.EM算法.最小二乘估计.刀切法(Jackknife).自助法(Bootstrap)的相关内容. ...
- R语言基础知识-学习笔记汇总
B站课程:生信必备技巧之R语言基础教程全集的代码笔记 1.R语言包安装 rm(list = ls()) # 设置镜像: options()$repos options()$BioC_mirror #o ...
- R语言入门(学习笔记)
文章目录 软件安装及更新 安装R语言 安装Rstudio(集成开发环境,在安装R语言后再安装) R版本更新 软件操作 窗口简介 界面设置 编码转换 快捷键 基础语法 注释 赋值 清除 帮助文档 R包 ...
- R语言ggplot2包学习笔记
声明 本系列是跟着<R数据科学>来学习的. aes内外使用color的差别 ggplot2自带的数据框 > str(mpg) Classes 'tbl_df', 'tbl' and ...
最新文章
- 捣鼓 Subversion
- 插入顶部_轻巧的衣领插入技术
- 网络视频监控与人脸识别
- 【JNI知识一】--JNI接口函数与指针
- PIE SDK矢量数据的读取
- 视频教程-Word从入门到精美排版教程:手把手学习Word2019精美排版-Office/WPS
- FLAG_ACTIVITY_CLEAR_TOP和singleTask的区别
- TIM下载的文件在哪个手机文件夹中(安卓)
- Android 拍摄(横 \ 竖屏)视频的懒人之路
- puzzle(1024)帐篷、星之战
- Kali下卸载程序和安装程序的方法
- MySQL隔离级别的底层理解(MVCC+锁)
- *2-2 OJ 1163 导弹拦截之测试版
- 物联网介绍の高屋建瓴篇
- 常见的直流无刷电机发热情况分析和解决方法分享--【无刷电机驱动】
- 优秀!研二实习生“阿里+字节+拼多多+美团”四杀offer
- M1 芯片 MacBook Pro/Air 软件兼容性如何?是否值得购买?
- 智慧城市智能交通系统(ITS)
- 视频webm怎么转换成mp4?
- bootstarp项目报告