使用 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的更多相关文章

  1. R vs Python:构建data.frame、读取csv与统计描述

    一.Python 数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构. 1.构建数据框 import pand ...

  2. R语言读取Excel文档

    在R语言数据管理(三):数据读写一博文中,我曾写到有关读取xls.xlsx文件时一般将文档改成csv文件读取,这是一般做法.csv文件也有其缺点,修改较为麻烦,当文件数据较大时尤为明显.而生活中必不可 ...

  3. R语言读取excel文件的3种方法

    R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为                ...

  4. R语言︱用excel VBA把xlsx批量转化为csv格式

    笔者寄语:批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入.本章来自博客:http://www.cnblogs.com/weibaar/p/4506144.html 在 ...

  5. 一句Python,一句R︱pandas模块——高级版data.frame

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...

  6. R语言读取EXCEL文件的各种方法

    路径问题 原始文件路径C:\Users\air\Desktop\1.txt R中有两种方法读取该路径 C:\\Users\\air\\Desktop\\1.txt C:/Users/air/Deskt ...

  7. R语言各种假设检验实例整理(常用)

    一.正态分布参数检验 例1. 某种原件的寿命X(以小时计)服从正态分布N(μ, σ)其中μ, σ2均未知.现测得16只元件的寿命如下: 159 280 101 212 224 379 179 264  ...

  8. R Data Frame

    https://www.datamentor.io/r-programming/data-frame/ Check if a variable is a data frame or not We ca ...

  9. r语言与dataframe

    什么是DataFrame 引用 r-tutor上的定义: DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量. 没错,DataFrame就是类似于Excel表 ...

随机推荐

  1. [C++] 初始化 vs 赋值

  2. WindowsXP序列号产生原理(椭圆曲线法)

    WindowsXP序列号产生原理(椭圆曲线法) 来源  https://blog.csdn.net/zhiyuan411/article/details/5156330 参考 https://www. ...

  3. java.net.URLEncoder对中文的编码和解码

    // java.net.URLEncoder对中文的编码和解码String str = URLEncoder.encode("测试字符串", "utf-8"); ...

  4. Spring的配置文件找不到元素 'beans' 的声明

    Spring的配置文件找不到元素 'beans' 的声明 一般是由Spring的版本导致的,你可以尝试使用如下的某一种. <?xml version="1.0" encodi ...

  5. Android四大组件——Activity跳转动画、淡出淡入、滑出滑入、自定义退出进入

    Activity跳转动画.淡入淡出.滑入滑出.自定义退出进入 前言: 系统中有两个定义好的Activity跳转动画:fade_in.fade_out.slide_in_left.slide_out_r ...

  6. [Flutter] 实现Flutter App内更新

    app内实现根据安卓和IOS平台进行更新 时间匆忙,相关操作以及信息都写在代码注释里面了,闲时在补充和完善. 功能在android项目中测试可用,ios上还未进行测试,如果ios有问题或者没问题的话都 ...

  7. 【转】Vue项目报错:Uncaught SyntaxError: Unexpected token <

    这篇文章主要介绍了Vue项目报错:Uncaught SyntaxError: Unexpected token <,在引入第三方依赖的 JS 文件时,遇到的一个问题,小编觉得挺不错的,现在分享给 ...

  8. Java 面向对象(九)内部类

    一.概述 1.引入 类的成员包括: 1.属性:成员变量2.方法:成员方法3.构造器4.代码块5.内部类:成员内部类 其中 1.2是代表这类事物的特征   其中3.4是初始化类和对象用的   其中5协助 ...

  9. Jmeter CSV参数带汉字处理

    问题1:请求参数中有汉字,在windows上调测压测没有问题,直接把参数文件上传到linux 服务器上进行分布式压测时发现参数取出后为乱码,linux上后台查看文件也是乱码 处理方法: 初步想到是因为 ...

  10. Servlet入门和HTTP。

    Servlet: 1.概念:Servlet:server applet  ,运行在服务器端的小程序.   浏览器在访问服务器的动态资源时,访问的是具有逻辑性的Java代码(Java类),而这里的Jav ...