R语言操作excel文件的数据
简述
令人惊讶的是,网上的教程关于r语言处理excel数据的都是在说如何读。。
下面以用xlsx这个包为例
安装这个包,并读取数据
【两行命令】R语言读取excel数据
操作数据
其实,导入进来之后,到R语言的环境中,就会转为data.frame的格式。
所以,我们就只需要安装data.frame的方式来操作就好了。
假设a是导入进来的变量
导入方法为:
library(xlsx)
a = read.xlsx('D:/Code/R/Data in Excel/Chapter 8/gamma-ray.xls',1)
- 获取第一行的数据
> a[1,]seconds count
1 116 0
- 获取第一列的数据
> a[1]seconds
1 116.0
2 112.0
3 160.0
4 51.5
5 102.0
6 77.4
7 14.5
8 1070.0
9 99.1
10 49.6
11 50.8
12 77.2
13 114.0
14 165.0
15 106.0
16 52.9
17 104.0
18 51.0
19 51.4
20 316.0
21 687.0
22 101.0
23 99.7
24 49.2
25 49.2
26 104.0
27 53.5
28 124.0
29 168.0
30 109.0
31 107.0
32 103.0
33 52.1
34 104.0
35 656.0
36 111.0
37 417.0
38 149.0
39 56.5
40 12.5
41 101.0
42 107.0
43 113.0
44 80.8
45 110.0
46 109.0
47 105.0
48 104.0
49 107.0
50 53.3
51 51.1
52 868.0
53 105.0
54 105.0
55 103.0
56 104.0
57 105.0
58 52.1
59 52.3
60 1110.0
61 30.4
62 116.0
63 44.9
64 46.1
65 97.9
66 102.0
67 162.0
68 102.0
69 102.0
70 98.7
71 98.7
72 103.0
73 51.6
74 53.1
75 1290.0
76 56.8
77 89.2
78 52.8
79 72.2
80 111.0
81 57.7
82 32.8
83 99.6
84 50.9
85 51.2
86 1350.0
87 69.1
88 67.7
89 38.2
90 37.9
91 31.3
92 121.0
93 55.8
94 460.0
95 128.0
96 38.7
97 41.8
98 81.7
99 88.3
100 37.4
- 第二种方法获取第一列的数据
> a[,1][1] 116.0 112.0 160.0 51.5 102.0 77.4 14.5 1070.0 99.1 49.6 50.8 77.2 114.0[14] 165.0 106.0 52.9 104.0 51.0 51.4 316.0 687.0 101.0 99.7 49.2 49.2 104.0[27] 53.5 124.0 168.0 109.0 107.0 103.0 52.1 104.0 656.0 111.0 417.0 149.0 56.5[40] 12.5 101.0 107.0 113.0 80.8 110.0 109.0 105.0 104.0 107.0 53.3 51.1 868.0[53] 105.0 105.0 103.0 104.0 105.0 52.1 52.3 1110.0 30.4 116.0 44.9 46.1 97.9[66] 102.0 162.0 102.0 102.0 98.7 98.7 103.0 51.6 53.1 1290.0 56.8 89.2 52.8[79] 72.2 111.0 57.7 32.8 99.6 50.9 51.2 1350.0 69.1 67.7 38.2 37.9 31.3[92] 121.0 55.8 460.0 128.0 38.7 41.8 81.7 88.3 37.4
不过发现前面有一个那个[1]
之类的数据是吧,那个其实是不存在于数据之中的,这里只是系统在显示数据的时候自动生成的。
R语言是主要为了数据处理而服务的。所以,这里在处理很多数据的时候,都需要标记一下当前这一行的数据的第一个是第几位。这样就好看一点。
- 两列之间做加减乘除
下面的东西,很奇怪是吧。列名居然还是a[2]的,据使用体验效果来看,估计是谁放前面就是谁的列名做生成的临时变量的列名
> a[2]/a[1] count
1 0.000000000
2 0.000000000
3 0.000000000
4 0.000000000
5 0.009803922
6 0.000000000
7 0.000000000
8 0.002803738
9 0.010090817
10 0.000000000
11 0.000000000
12 0.000000000
13 0.000000000
14 0.000000000
15 0.000000000
16 0.000000000
17 0.019230769
18 0.039215686
19 0.000000000
20 0.006329114
21 0.005822416
22 0.000000000
23 0.000000000
24 0.000000000
25 0.020325203
26 0.000000000
27 0.000000000
28 0.000000000
29 0.000000000
30 0.000000000
31 0.009345794
32 0.000000000
33 0.000000000
34 0.009615385
35 0.007621951
36 0.009009009
37 0.004796163
38 0.006711409
39 0.017699115
40 0.000000000
41 0.009900990
42 0.000000000
43 0.008849558
44 0.000000000
45 0.000000000
46 0.000000000
47 0.000000000
48 0.009615385
49 0.000000000
50 0.000000000
51 0.000000000
52 0.001152074
53 0.000000000
54 0.000000000
55 0.019417476
56 0.000000000
57 0.000000000
58 0.000000000
59 0.000000000
60 0.000000000
61 0.000000000
62 0.000000000
63 0.000000000
64 0.000000000
65 0.000000000
66 0.009803922
67 0.000000000
68 0.000000000
69 0.000000000
70 0.000000000
71 0.020263425
72 0.000000000
73 0.019379845
74 0.000000000
75 0.002325581
76 0.000000000
77 0.011210762
78 0.018939394
79 0.000000000
80 0.000000000
81 0.000000000
82 0.000000000
83 0.020080321
84 0.019646365
85 0.000000000
86 0.004444444
87 0.000000000
88 0.000000000
89 0.026178010
90 0.000000000
91 0.000000000
92 0.000000000
93 0.000000000
94 0.015217391
95 0.000000000
96 0.025839793
97 0.000000000
98 0.000000000
99 0.000000000
100 0.000000000
- 添加新的列
这里就直接用上一个操作的数据做了
> a[3] = a[2] / a[1]
操作之后,就会在这个data.frame之中,添加一个新的列。
- 修改列名
我们注意到,上一个数据生成的时候,我们没有指定列名。所以,这里我们需要交代一下。
下面的代码,就将第三列的列名修改为了count_avg
> names(a)[3] = "count_avg"
- 查看a的数据
两种方法
方法一:
> View(a)
方法二:
> aseconds count count_avg
1 116.0 0 0.000000000
2 112.0 0 0.000000000
3 160.0 0 0.000000000
4 51.5 0 0.000000000
5 102.0 1 0.009803922
6 77.4 0 0.000000000
7 14.5 0 0.000000000
8 1070.0 3 0.002803738
9 99.1 1 0.010090817
10 49.6 0 0.000000000
11 50.8 0 0.000000000
12 77.2 0 0.000000000
13 114.0 0 0.000000000
14 165.0 0 0.000000000
15 106.0 0 0.000000000
16 52.9 0 0.000000000
17 104.0 2 0.019230769
18 51.0 2 0.039215686
19 51.4 0 0.000000000
20 316.0 2 0.006329114
21 687.0 4 0.005822416
22 101.0 0 0.000000000
23 99.7 0 0.000000000
24 49.2 0 0.000000000
25 49.2 1 0.020325203
26 104.0 0 0.000000000
27 53.5 0 0.000000000
28 124.0 0 0.000000000
29 168.0 0 0.000000000
30 109.0 0 0.000000000
31 107.0 1 0.009345794
32 103.0 0 0.000000000
33 52.1 0 0.000000000
34 104.0 1 0.009615385
35 656.0 5 0.007621951
36 111.0 1 0.009009009
37 417.0 2 0.004796163
38 149.0 1 0.006711409
39 56.5 1 0.017699115
40 12.5 0 0.000000000
41 101.0 1 0.009900990
42 107.0 0 0.000000000
43 113.0 1 0.008849558
44 80.8 0 0.000000000
45 110.0 0 0.000000000
46 109.0 0 0.000000000
47 105.0 0 0.000000000
48 104.0 1 0.009615385
49 107.0 0 0.000000000
50 53.3 0 0.000000000
51 51.1 0 0.000000000
52 868.0 1 0.001152074
53 105.0 0 0.000000000
54 105.0 0 0.000000000
55 103.0 2 0.019417476
56 104.0 0 0.000000000
57 105.0 0 0.000000000
58 52.1 0 0.000000000
59 52.3 0 0.000000000
60 1110.0 0 0.000000000
61 30.4 0 0.000000000
62 116.0 0 0.000000000
63 44.9 0 0.000000000
64 46.1 0 0.000000000
65 97.9 0 0.000000000
66 102.0 1 0.009803922
67 162.0 0 0.000000000
68 102.0 0 0.000000000
69 102.0 0 0.000000000
70 98.7 0 0.000000000
71 98.7 2 0.020263425
72 103.0 0 0.000000000
73 51.6 1 0.019379845
74 53.1 0 0.000000000
75 1290.0 3 0.002325581
76 56.8 0 0.000000000
77 89.2 1 0.011210762
78 52.8 1 0.018939394
79 72.2 0 0.000000000
80 111.0 0 0.000000000
81 57.7 0 0.000000000
82 32.8 0 0.000000000
83 99.6 2 0.020080321
84 50.9 1 0.019646365
85 51.2 0 0.000000000
86 1350.0 6 0.004444444
87 69.1 0 0.000000000
88 67.7 0 0.000000000
89 38.2 1 0.026178010
90 37.9 0 0.000000000
91 31.3 0 0.000000000
92 121.0 0 0.000000000
93 55.8 0 0.000000000
94 460.0 7 0.015217391
95 128.0 0 0.000000000
96 38.7 1 0.025839793
97 41.8 0 0.000000000
98 81.7 0 0.000000000
99 88.3 0 0.000000000
100 37.4 0 0.000000000
- 删除部分列
只保留第一、二列
> a = a[, c(1, 2)]
只删除第一、二列
> a = a[, -c(1, 2)]
保留第一到第二列
(后面的能够数值就可以任意写了,删除连续的片段)
> a = a[, 1:2]
只删除第一到第二列
(同样是,可以删除连续的片段)
> a = a[, -c(1:2)]
删除行
就是跟上面的是一样的。(只是把列的位置和行的位置都调换一下就好了)
注意一下:逗号不能省略提取部分行和部分列
第一行到第一列
> a[1:5, 1:2]seconds count
1 116.0 0
2 112.0 0
3 160.0 0
4 51.5 0
5 102.0 1
- 根据列名删除部分列
> a = a[,-which(names(a) %in% c("count"))]
删除掉 count
列
R语言操作excel文件的数据相关推荐
- c语言从excal读取字符串,C语言操作EXCEL文件(读写)
C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...
- C语言操作EXCEL文件(读写)
C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...
- R语言读取excel文件实战(read.xlsx函数、read_excel函数、read.xlsx函数、Write函数)
R语言读取excel文件实战(read.xlsx函数.read_excel函数.read.xlsx函数.Write函数) 目录 R语言读取excel文件实战(read.xlsx函数.read_exce ...
- R语言读取Excel文件的一系列陷阱
你想用R读取一个Excel文件,你觉得这事没啥难的,就像所有的文件读取,只需要知道文件名就万事大吉了. 于是,你把1.xls放到读取.R的文件夹下面,重命名为1.csv,打开rstudio,执行下面这 ...
- Python操作Excel文件汇总数据案例一则
问题描述: Excel文件"每个人的爱好.xlsx"内容如下: 要求在最后追加一列,该列中每个单元格的内容为所在行前几列单元格数据的汇总.以上面的内容为例,处理后文件内容如下: 参 ...
- C语言操作Excel文件
一.前言 xlsxio是一个用用于读写 .xlsx 文件的 C 库,其github地址如下: https://github.com/brechtsanders/xlsxio 该库的编写考虑了以下目标: ...
- R语言读取Excel文件的方法
[软件版本] 操作系统:Win7 旗舰版 R语言版本:R-3.6.3-win.exe RStudio版本:RStudio-1.3.1093.exe RTools版本:Rtools35.exe Java ...
- Java操作excel文件插入数据
读取一个表数据根据自己的需求将数据插入到另外一个表中,复制代码下载excel及jar包即可 注意:读取表数据时,表格中的格子没有数据时会读取报错 excel文件及相关jar包: 连接:https:// ...
- R语言操作PDF文件的包
背景 有过文章投稿经验的朋友们知道,文章中的图片排版是个很繁琐的过程.涉及到多个图片的组合跟字体字号的调整.刚开始自己没有这方面经验,对输出的结果图格式比较随意:*.jpg,*.png等等.直到后面需 ...
最新文章
- Linux内核启动速度优化,嵌入式Linux启动时间优化的秘密之五-Bootloader
- 选择头秃还是植发?大数据告诉你植发行业水有多深?
- ActiveMQ安装使用
- 步步为营-19-正则表达式的简单应用
- 什么叫一年有四季......
- java中精确地小数_在Java等于方法中进行精确比较
- 强一致性和弱一致性的区别
- 从12306网站新验证码看Web验证码设计与破解
- 大型网站应用之海量数据和高并发解决方案总结一二
- 工控领域组态软件开发感触
- 分享一个免费开源的视频录制软件(OBS)
- IcedTea6 1.7.6、1.8.3和1.9.2补丁程序信息泄漏
- 对校招生培养工作的建议_对我校招生工作的一些粗浅想法(精)
- c语言中的各种变量是如何存储的(-)
- 51单片机学习笔记之数码管1显示数字0以及使用蜂鸣器
- 各版本Metal支持的iOS版本与MacOS版本
- 基于Python大数据的的新能源汽车推荐系统的设计与实现
- 数据仓库---JPivot连接MySQL VS PostgreSQL
- 【牛客题霸】语法篇 - C++入门72题
- 官方的Getting Started
热门文章
- platform_driver_probe与platform_driver_register的区别
- clone下来的代码push到自己的远程仓库中
- 卓讯企业名录搜索软件_还在用卓讯企业名录搜索软件吗?探迹黑科技助力企业提升销售效率...
- springboot整合elasticJob实战(纯代码开发三种任务类型用法)以及分片系统,事件追踪详解...
- Linux LB 集群知识、如何用 LVS 方式实现 LB 集群?
- linux 命令详解 十一
- 电缆桥架安装规范标准_电缆桥架怎么安装,桥架安装工艺分享
- Leetcode 88. 合并两个有序数组 解题思路及C++实现
- TensorFlow预训练模型在新图中权重部分加载
- PAT练习之字符串处理