R 语言处理excel为data.frame
使用 R包 xlsx 或者 openxlsx
安装
install.packages("xlsx", repos="https://cloud.r-project.org/")
install.packages("openxlsx", repos="https://cloud.r-project.org/")
使用
文件名+sheet的序号读取指定sheet的内容
data <- read.xlsx("Lipstick.xlsx", sheet = 1) # 读取excel
View(data)
## data 为 data.frame
# 读取 table 分隔的文本文件
data = read.table(file.txt, sep="\t", header=T);
访问 data.frame 的元素
查看列名 colnames(data)
查看行名 rownames(data)
提取指定行
data[2,] 提取第二行
提取指定列
data[c("列名1", "列名2", "列名3")]
data[2] 提取第二列
data[2:4] 提取第2-4列
如果只访问1列,返回的是 vector 类型,可以使用 [[ ]] 或者 $ 来访问 data[[2]] 或者 data$列名
默认情况下,字符串向量会被自动识别成 Factor
向 data.frame 中添加新列 新添加的列的行数要和表中的列的行数相同
data$新列名 <- 数据
data$新列名 <- as.integer(format(Sys.Date(), "%Y")) - as .integer(format(sutdent$birthday, "%Y"))
查询/子集
查询一个data.frame,返回一个满足条件的子集,这相当于数据库中的表查询,是非常常见的操作。
使用行和列的index来获取子集是最简单的方法,详情见前面。
当然也可以使用布尔向量,配合which函数来实现对行的过滤。
比如我们要查询所有Gender为F的数据,那么我们首先通过student$Gender=="F" 得到一个布尔向量:FALSE FALSE ... TRUE,然后使用 which 函数可以将布尔向量中的TRUE的index返回,完整语句如下
student[which(student$Gender=="F")]
如果我们想知道所有女生的年龄,
student[which(student$Gender=="F"), "Age"]
另外可以直接使用 subset() 函数,比如把查询年龄改为 <30 的女性,查询姓名和年龄,如下
subset(student, Gender=="F" & Age < 30, select=c("Name", "Age"))
使用SQL查询 Data Frame 使用 sqldf 包
library(sqldf)
result <- sqldf("select Name, Age from student where Gender='F' and Age > 30")
连接/合并
对于数据库来说,对多表进行 join 查询是一个很正常的事,在R中也可以对多个 Data.frame 进行连接,需要使用 merge() 函数
result <- merge(student,score,by.x="ID",by.y="SID")
使用 rbind() 函数 rbind 的两个 Data frame 必须有相同的列
R 语言处理excel为data.frame的更多相关文章
- R vs Python:构建data.frame、读取csv与统计描述
一.Python 数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构. 1.构建数据框 import pand ...
- R语言读取Excel文档
在R语言数据管理(三):数据读写一博文中,我曾写到有关读取xls.xlsx文件时一般将文档改成csv文件读取,这是一般做法.csv文件也有其缺点,修改较为麻烦,当文件数据较大时尤为明显.而生活中必不可 ...
- R语言读取excel文件的3种方法
R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为 ...
- R语言︱用excel VBA把xlsx批量转化为csv格式
笔者寄语:批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入.本章来自博客:http://www.cnblogs.com/weibaar/p/4506144.html 在 ...
- 一句Python,一句R︱pandas模块——高级版data.frame
先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...
- R语言读取EXCEL文件的各种方法
路径问题 原始文件路径C:\Users\air\Desktop\1.txt R中有两种方法读取该路径 C:\\Users\\air\\Desktop\\1.txt C:/Users/air/Deskt ...
- R语言各种假设检验实例整理(常用)
一.正态分布参数检验 例1. 某种原件的寿命X(以小时计)服从正态分布N(μ, σ)其中μ, σ2均未知.现测得16只元件的寿命如下: 159 280 101 212 224 379 179 264 ...
- R Data Frame
https://www.datamentor.io/r-programming/data-frame/ Check if a variable is a data frame or not We ca ...
- r语言与dataframe
什么是DataFrame 引用 r-tutor上的定义: DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量. 没错,DataFrame就是类似于Excel表 ...
随机推荐
- C#里面如何判断一个Object是否是某种类型
第一种方法 var isA = oldObject.GetType() == typeof(Dictionary<string, string>) 第二种方法 var isB = oldO ...
- Pika 连接 rabbitmq 集群
原文:https://blog.csdn.net/Tech_Salon/article/details/82890431 使用 Pika 连接 rabbitmq 集群使用 python 编程经常会用到 ...
- Java自学-异常处理 异常分类
Java 中异常的分类 异常分类: 可查异常,运行时异常和错误3种 其中,运行时异常和错误又叫非可查异常 步骤 1 : 可查异常 可查异常: CheckedException 可查异常即必须进行处理的 ...
- vue与webpack开发环境搭建:从无到有
一个vue从无到有的搭建过程. 一.不论是webpack还是vue,最初的第一步就是安装node.js.它是基石. 从官网下载你需要的安装包:官网下载链接:http://nodejs.cn/downl ...
- HTNL5-ARIA role属性
WAI-ARIA Web Accessibility Initiative’s Accessible Rich Internet Applications 无障碍网页倡议–无障碍的富互联网应用,也简称 ...
- js如何保留两位小数,并进行四舍五入
保留两位小数,并进行四舍五入使用js函数 toFixed() 函数传递一个参数(Number) Number就为需要保留小数的位数 具体实现代码 <script language="j ...
- MES实施可能会遇到的问题,这里都帮你解决
MES系统选型关键技术的发展已日趋成熟,开发MES系统技术并不是问题,困难的是如何确定系统的功能.规格,如何成功地使用MES系统,以充分发挥其作用,下面给大家分析这两大块内容. 实施MES系统选型的困 ...
- 8 smali文件格式
Apktool反编译apk后程序中每一个类都会有一个smali文件. 一.当前类信息:smali文件的头三行描述了当前类的一些信息. Eg: .class <访问权限> [修饰关键字]&l ...
- 解决apscheduler报错:Run time of job …… next run at: ……)” was missed by
在Django中使用apscheduler django_apscheduler 实现定时任务, 来完成数据拉取. 一段时间后发现数据量对不上,遂查日志 发现报错如下: Run time of job ...
- 如何提交多个具有相同name属性的表单
有的时候我们会遇到这样一个需求,一个用户页面中有多条履历信息,每条履历信息对应数据表中的一条记录,用户可以进行添加或修改,点击保存时同时提交到了后台.有两个难点:1.前端怎样一次性提交多条履历信息?2 ...