R语言操作excel文件的数据 您所在的位置:网站首页 如何查看excel表格中的公式和数据类型 R语言操作excel文件的数据

R语言操作excel文件的数据

2024-06-29 08:28| 来源: 网络整理| 查看: 265

简述

令人惊讶的是,网上的教程关于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)

方法二:

> a seconds 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列



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有