初学者使用R语言读取excel/csv/txt的注意事项

这篇具有很好参考价值的文章主要介绍了初学者使用R语言读取excel/csv/txt的注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本文首发于:医学和生信笔记,完美观看体验请至公众号查看本文。文章来源地址https://www.toymoban.com/news/detail-418304.html


本文面向R语言初学者,尤其是生物医药领域的初学者,大佬勿喷~

在之前的推文中,我们用两个视频详细介绍了R语言、rtools、Rstudio以及R包的安装,解决新手最先碰到的两大难题!

接下来大家就面临把数据读入R语言、把数据另存为其他格式的问题!

大家在日常生活中遇到的最多的数据应该还是Excel数据,但是对于R语言来说,我们必须要把外部数据读入到R里面,才能进行各种操作。对于我们最后的数据,可能还需要再保存为excel格式。

这两个问题对于会的人来说非常简单,可以有多种方法可以实现,但是对于新手来说却经常遇到报错。今天从一个新手的角度说一说R语言的数据读入和另存问题。

把数据读入R语言

Excel

这个格式太常见了,大家日常生活用的大部分都是这种格式。比如有这么一个excel文件:data.xlsx,它里面的内容是这样的:
初学者使用R语言读取excel/csv/txt的注意事项

现在我们需要把它读入R里面。我推荐你使用readxl包读取Excel文件。首先我们要安装这个R包,如果你还不会R包安装常见的4种方式,赶紧去看这个视频:xxxxxxxxxxxxx。

install.packages("readxl")

安装好之后,我们需要加载这个R包才能使用:

library(readxl)

然后我们就可以读入这个文件了,读取时,你必须指明你的文件在哪里! 如果文件路径没写对,就会出现下面这种类似的报错,一般情况下,它会告诉你,你的路径没写对,或者找不到这个文件,这个文件不存在,不能打开连接等等错误!!

tmp <- read_xlsx("E:/data.xlsx", col_names = T)

## Error: `path` does not exist: ‘E:/R/data.xlsx’

这个时候你就要去确认下,你的这个data.xlsx文件到底在哪里!当你给它正确的路径时,它就不会报错。还要注意/ \ , " ",这些标点一定要在英文状态下输入!

tmp <- read_xlsx("E:/R/data.xlsx", col_names = T)

tmp
## # A tibble: 29 × 6
##     编号 治疗方式 性别   年龄 收缩压  血糖
##    <dbl> <chr>    <chr> <dbl>  <dbl> <dbl>
##  1     1 方法1    男       56    134   6.3
##  2     2 方法2    女       45    123   4.6
##  3     3 方法3    男       67    112   7.4
##  4     4 方法4    女       56    113   8.5
##  5     5 方法5    男       78    115   6.3
##  6     6 方法6    女       56    116   4.6
##  7     7 方法7    男       67    134   7.4
##  8     8 方法8    女       45    123   8.5
##  9     9 方法9    男       67    112   6.3
## 10    10 方法10   女       87    113   4.6
## # … with 19 more rows
## # ℹ Use `print(n = ...)` to see more rows

这样我们就成功把文件读取到R里面了!

除了路径问题,对于新手还有几个点需要注意:

  • 这个示例文件是有列名的,所以在读取的时候加了col_names=T这个参数,没有行名就要改成F
  • 如果你的数据使用了合并/拆分单元格、各种格式、公式等,会报错!
  • 这个文件是.xlsx格式的,如果不是,那你需要用其他函数,比如read_xls()函数读取.xls结尾的文件;
  • 如果你读取中文遇到乱码问题,那大概率是遇到了编码问题,这是一个很复杂的问题:
    • 首先你可以通过点击rstudio中的Tools - Global Options,到达以下界面,把默认编码方式改为utf-8,然后关闭rstudio,重新读取;
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0LkHBpNt-1668216404004)(C:\Users\liyue\Desktop\Snipaste_2022-07-31_19-13-14.png)]
    • 有时直接升级R包/R/rstudio/,重新保存文件为utf-8等方式也可以解决问题;
    • 如果都不行,直接百度!具体情况具体分析!

csv

csv文件是一种逗号分隔文件,打开后和excel看起来一模一样,你不要问为什么看不到逗号…
初学者使用R语言读取excel/csv/txt的注意事项

一般推荐把excel文件另存为csv文件,因为方便R语言读取,不需要安装R包也可以读取~

csv <- read.csv("E:/R/data.csv", header = T)

csv
##    编号 治疗方式 性别 年龄 收缩压 血糖
## 1     1    方法1   男   56    134  6.3
## 2     2    方法2   女   45    123  4.6
## 3     3    方法3   男   67    112  7.4
## 4     4    方法4   女   56    113  8.5
## 5     5    方法5   男   78    115  6.3
## 6     6    方法6   女   56    116  4.6
## 7     7    方法7   男   67    134  7.4
## 8     8    方法8   女   45    123  8.5
## 9     9    方法9   男   67    112  6.3
## 10   10   方法10   女   87    113  4.6
## 11   11   方法11   男   56    115  7.4
## 12   12   方法12   女   78    116  8.5
## 13   13   方法13   男   67    134  6.3
## 14   14   方法14   女   56    123  4.6
## 15   15   方法15   男   78    112  7.4
## 16   16   方法16   女   56    113  8.5
## 17   17   方法17   男   45    115  6.3
## 18   18   方法18   女   67    116  4.6
## 19   19   方法19   男   56    134  7.4
## 20   20   方法20   女   78    123  8.5
## 21   21   方法21   男   56    112  6.3
## 22   22   方法22   女   67    113  4.6
## 23   23   方法23   男   45    115  7.4
## 24   24   方法24   女   67    116  8.5
## 25   25   方法25   男   87    134  6.3
## 26   26   方法26   女   56    123  4.6
## 27   27   方法27   男   78    112  7.4
## 28   28   方法28   女   67    113  8.5
## 29   29   方法29   男   56    115  6.3

或者用read.table()函数读取。

csv <- read.table("E:/R/data.csv", header = T,
                  sep = "," # 指定分隔符!!
                  )

csv
##    编号 治疗方式 性别 年龄 收缩压 血糖
## 1     1    方法1   男   56    134  6.3
## 2     2    方法2   女   45    123  4.6
## 3     3    方法3   男   67    112  7.4
## 4     4    方法4   女   56    113  8.5
## 5     5    方法5   男   78    115  6.3
## 6     6    方法6   女   56    116  4.6
## 7     7    方法7   男   67    134  7.4
## 8     8    方法8   女   45    123  8.5
## 9     9    方法9   男   67    112  6.3
## 10   10   方法10   女   87    113  4.6
## 11   11   方法11   男   56    115  7.4
## 12   12   方法12   女   78    116  8.5
## 13   13   方法13   男   67    134  6.3
## 14   14   方法14   女   56    123  4.6
## 15   15   方法15   男   78    112  7.4
## 16   16   方法16   女   56    113  8.5
## 17   17   方法17   男   45    115  6.3
## 18   18   方法18   女   67    116  4.6
## 19   19   方法19   男   56    134  7.4
## 20   20   方法20   女   78    123  8.5
## 21   21   方法21   男   56    112  6.3
## 22   22   方法22   女   67    113  4.6
## 23   23   方法23   男   45    115  7.4
## 24   24   方法24   女   67    116  8.5
## 25   25   方法25   男   87    134  6.3
## 26   26   方法26   女   56    123  4.6
## 27   27   方法27   男   78    112  7.4
## 28   28   方法28   女   67    113  8.5
## 29   29   方法29   男   56    115  6.3

是不是很简单,注意点和excel一样~

txt

txt文件也是我们常见的文件类型,通常这种数据也是可以直接读取的,不同安装R包。

现在我们有一个这样的txt文件,它可能看起来不规整,但其实是规整的哦~~,不要被表象迷惑,也千万不要试图用空格键把它对齐!!
初学者使用R语言读取excel/csv/txt的注意事项

txt是tab键分隔的文件,在读取时,一定要指定分隔符:

tmp <- read.table("tmp.txt",sep = "\t", # 必须要指定分隔符
                  header = T)
tmp
##    编号 治疗方式 性别 年龄 收缩压 血糖
## 1     1    方法1   男   56    134  6.3
## 2     2    方法2   女   45    123  4.6
## 3     3    方法3   男   67    112  7.4
## 4     4    方法4   女   56    113  8.5
## 5     5    方法5   男   78    115  6.3
## 6     6    方法6   女   56    116  4.6
## 7     7    方法7   男   67    134  7.4
## 8     8    方法8   女   45    123  8.5
## 9     9    方法9   男   67    112  6.3
## 10   10   方法10   女   87    113  4.6
## 11   11   方法11   男   56    115  7.4
## 12   12   方法12   女   78    116  8.5
## 13   13   方法13   男   67    134  6.3
## 14   14   方法14   女   56    123  4.6
## 15   15   方法15   男   78    112  7.4
## 16   16   方法16   女   56    113  8.5
## 17   17   方法17   男   45    115  6.3
## 18   18   方法18   女   67    116  4.6
## 19   19   方法19   男   56    134  7.4
## 20   20   方法20   女   78    123  8.5
## 21   21   方法21   男   56    112  6.3
## 22   22   方法22   女   67    113  4.6
## 23   23   方法23   男   45    115  7.4
## 24   24   方法24   女   67    116  8.5
## 25   25   方法25   男   87    134  6.3
## 26   26   方法26   女   56    123  4.6
## 27   27   方法27   男   78    112  7.4
## 28   28   方法28   女   67    113  8.5
## 29   29   方法29   男   56    115  6.3

其他

如果是spss软件产生的.sav文件,可以使用foreign包中的read.spss()函数读取,或者使用haven包中的read_sav()

这两个包在使用前需要先安装哦~

# foreign包读取
library(foreign)
spss <- foreign::read.spss("例03-05.sav",to.data.frame = T)

spss
##    no  hb
## 1   1 112
## 2   2 137
## 3   3 129
## 4   4 126
## 5   5  88
## 6   6  90
## 7   7 105
## 8   8 178
## 9   9 130
## 10 10 128
## 11 11 126
## 12 12 103
## 13 13 172
## 14 14 116
## 15 15 125
## 16 16  90
## 17 17  96
## 18 18 162
## 19 19 157
## 20 20 151
## 21 21 135
## 22 22 113
## 23 23 175
## 24 24 129
## 25 25 165
## 26 26 171
## 27 27 128
## 28 28 128
## 29 29 160
## 30 30 110
## 31 31 140
## 32 32 163
## 33 33 100
## 34 34 129
## 35 35 116
## 36 36 127
# haven包读取
library(haven)
spss <- read_sav("例03-05.sav")

spss
## # A tibble: 36 × 2
##       no    hb
##    <dbl> <dbl>
##  1     1   112
##  2     2   137
##  3     3   129
##  4     4   126
##  5     5    88
##  6     6    90
##  7     7   105
##  8     8   178
##  9     9   130
## 10    10   128
## # … with 26 more rows
## # ℹ Use `print(n = ...)` to see more rows

这个例子是比较简单的,有时候需要指定特定的编码方式,可以通过使用?read_sav/?read.spss查看更改编码的方式。

haven这个包是专门设计用来读取spss/SAS/STATA格式的文件的~

如果是rdata/Rdata/RData文件,这个是R自带的格式,直接load()即可,但是要注意一定要写对文件路径!! 或者也可以直接双击rdata/Rdata/RData文件!

load(file = "tmp.rdata")
tmp
##    编号 治疗方式 性别 年龄 收缩压 血糖
## 1     1    方法1   男   56    134  6.3
## 2     2    方法2   女   45    123  4.6
## 3     3    方法3   男   67    112  7.4
## 4     4    方法4   女   56    113  8.5
## 5     5    方法5   男   78    115  6.3
## 6     6    方法6   女   56    116  4.6
## 7     7    方法7   男   67    134  7.4
## 8     8    方法8   女   45    123  8.5
## 9     9    方法9   男   67    112  6.3
## 10   10   方法10   女   87    113  4.6
## 11   11   方法11   男   56    115  7.4
## 12   12   方法12   女   78    116  8.5
## 13   13   方法13   男   67    134  6.3
## 14   14   方法14   女   56    123  4.6
## 15   15   方法15   男   78    112  7.4
## 16   16   方法16   女   56    113  8.5
## 17   17   方法17   男   45    115  6.3
## 18   18   方法18   女   67    116  4.6
## 19   19   方法19   男   56    134  7.4
## 20   20   方法20   女   78    123  8.5
## 21   21   方法21   男   56    112  6.3
## 22   22   方法22   女   67    113  4.6
## 23   23   方法23   男   45    115  7.4
## 24   24   方法24   女   67    116  8.5
## 25   25   方法25   男   87    134  6.3
## 26   26   方法26   女   56    123  4.6
## 27   27   方法27   男   78    112  7.4
## 28   28   方法28   女   67    113  8.5
## 29   29   方法29   男   56    115  6.3

如果是rds文件,这个也是R常用的格式,使用readRDS()函数即可,也要注意文件路径

tmp <- readRDS(file = "tmp.rds") 
tmp
##    编号 治疗方式 性别 年龄 收缩压 血糖
## 1     1    方法1   男   56    134  6.3
## 2     2    方法2   女   45    123  4.6
## 3     3    方法3   男   67    112  7.4
## 4     4    方法4   女   56    113  8.5
## 5     5    方法5   男   78    115  6.3
## 6     6    方法6   女   56    116  4.6
## 7     7    方法7   男   67    134  7.4
## 8     8    方法8   女   45    123  8.5
## 9     9    方法9   男   67    112  6.3
## 10   10   方法10   女   87    113  4.6
## 11   11   方法11   男   56    115  7.4
## 12   12   方法12   女   78    116  8.5
## 13   13   方法13   男   67    134  6.3
## 14   14   方法14   女   56    123  4.6
## 15   15   方法15   男   78    112  7.4
## 16   16   方法16   女   56    113  8.5
## 17   17   方法17   男   45    115  6.3
## 18   18   方法18   女   67    116  4.6
## 19   19   方法19   男   56    134  7.4
## 20   20   方法20   女   78    123  8.5
## 21   21   方法21   男   56    112  6.3
## 22   22   方法22   女   67    113  4.6
## 23   23   方法23   男   45    115  7.4
## 24   24   方法24   女   67    116  8.5
## 25   25   方法25   男   87    134  6.3
## 26   26   方法26   女   56    123  4.6
## 27   27   方法27   男   78    112  7.4
## 28   28   方法28   女   67    113  8.5
## 29   29   方法29   男   56    115  6.3

常见的就是这些,当你掌握这些简单的之后,你可以尝试更加复杂的,以后肯定也会遇到,不过有了这些简单的作为基础,相信你能更快的解决这类问题~

写出文件(从R语言另存为其他格式)

写出文件我觉得比读取文件要简单一点,如果你实在不知道怎么保存,有个简便方法,在这个地方:
初学者使用R语言读取excel/csv/txt的注意事项

直接点击保存,就会在你当前工作目录产生一个RData文件,下次直接load或者双击即可快速打开你的所有东西!!!

不太推荐直接保存为excel格式,建议使用csv格式。

如果是想把当前文件保存为csv文件,可以使用以下函数:

# 把tmp这个数据框保存为csv
write.csv(tmp, # 要保存的对象
          file = "D:/111.csv", # 保存到哪里,保存为什么格式,.csv不要忘记!
          quote = F, # 不加引号
          row.names = F, # 行名
          col.names = T # 列名
          )

write.table(tmp,
            file = "D:/111.csv", # 保存到哪里,保存为什么格式,.csv不要忘记!
            sep = ",",  # 必须指定分隔符!!!
            quote = F, # 不加引号
            row.names = F, # 行名
            col.names = T # 列名
            )

如果要保存为或者txt文件,可以使用以下函数:

write.table(tmp,
            file = "D:/222.txt",
            sep = "\t", # 千万别忘记指定分隔符!!
            quote = F, # 不加引号
            row.names = F, # 行名
            col.names = T # 列名
            )

如果要保存为rdata/Rdata/RData文件,直接用save()函数,简单方便,下次直接load即可,还可以同时保存多个对象!!

推荐大家平时保存时选择rdata/Rdata/RData/rds,方便,官方!

save(tmp,csv, # 同时保存多个对象
     file = "tmp1.rdata")

保存为rds格式:

saveRDS(tmp, file = "tmp.rds")

以上就是常见的数据读取和写出,最后再说一遍注意点:

  • 输入法需要是英文状态下的标点符号!
  • 文件路径必须写对!
  • 注意不同文件的分隔符!
  • 不同文件使用不同函数读取/写出!不要所有的格式都用一个!
  • 如果碰到不知道的格式读取,直接百度!!99.999%能解决你的问题!

希望大家以后再也不要碰到数据读取问题!


本文首发于:医学和生信笔记,完美观看体验请至公众号查看本文。


到了这里,关于初学者使用R语言读取excel/csv/txt的注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R语言爬虫实例 初学者自用

    本文记录了使用rvest RSelenium 包进行爬虫与网页渲染的相关知识点及本人的编程操作过程。涉及到基本爬取操作、爬取缺失部分如何处理、操作网页过滤等步骤。 本人非计算机专业,如有措辞不慎敬请提出。 这学期为了凑学分,选了一门R语言的课,才发现R语言远比我们想象

    2024年02月02日
    浏览(46)
  • 有哪些适合初学者的编程语言?

    那为什么我还要教你C语言呢?因为我想要让你成为一个更好、更强大的程序员。如果你要变得更好,C语言是一个极佳的选择,其原因有二。首先,C语言缺乏任何现代的安全功能,这意味着你必须更为警惕,时刻了解真正发生的事情。如果你能写出安全、健壮的C代码,那你就

    2024年02月09日
    浏览(72)
  • 【C语言】代码实现 扫雷 游戏及进阶功能(初学者详解)

    扫雷游戏的起源可以追溯到20世纪60年代,当时这款游戏是由IBM开发出来的。在80年代初,微软公司将其收归旗下,并将其作为Windows操作系统自带的一款游戏。自此以后,扫雷成为了Windows用户最喜欢的休闲游戏之一,也受到了全球范围内的玩家喜爱。 现在,我们使用C语言,来

    2024年01月20日
    浏览(48)
  • “C“浒传——初识C语言(更适合初学者体质哦!)

    第一章  “C“浒传——初识C语言(更适合初学者体质哦!) 目录 系列文章目录    前言  一、什么是C语言 二、第一个C语言程序  三、数据类型 四、变量,常量 4.1 定义变量的方法 4.1.1 变量的命名 4.2 变量的分类 4.3 变量的使用 4.4 变量的作用域和生命周期 4.4.1 作用域

    2024年02月07日
    浏览(62)
  • C语言初学者:原来分支和循环语句可以这样简单!

    目录 1.分支语句 1.if 语句 2.else语句 3.嵌套if  4.悬空else的问题 5.Switch语句 2.循环语句  1.while循环 2.for循环 3do-while循环 3.break和continue语句 1.break语句 2.continue语句 4.goto语句  5.小结 6.为你们点赞呢~ 7.完结散花                            不是每个人都能做自己想做的事,成

    2024年04月12日
    浏览(46)
  • C语言初学者必学必会的C语言必背100代码

    对于C语言这门计算机语言,算是老生常谈了,现在就由我来给大家分享几个关于C语言的几个代码吧!(如果有错的地方还望见谅) 1.入门级别hello,world #includestdio.h int main() { printf(\\\"Hello,world!n\\\"); return 0; } 2.求素数 #include stdio.h #include math.h int isprime( int n) //n是否是素数 { int i,k=s

    2024年02月08日
    浏览(44)
  • 【Go语言】Golang保姆级入门教程 Go初学者chapter2

    setting的首选项 一个程序就是一个世界 变量是程序的基本组成单位 变量的使用步骤 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuxG8imp-1691479164956)(https://cdn.staticaly.com/gh/hudiework/img@main/image-20230726152905139.png)] 变量表示内存中的一个存储区 注意:

    2024年02月14日
    浏览(129)
  • 【Go语言】Golang保姆级入门教程 Go初学者chapter3

    下划线“_”本身在Go中一个特殊的标识符,成为空标识符。可以代表任何其他的标识符,但是他对应的值就会被忽略 仅仅被作为站维度使用, 不能作为标识符使用 因为Go语言中没有private public 所以标记变量首字母大写代表其他包可以使用 小写就是不可使用的 注意:Go语言中

    2024年02月13日
    浏览(62)
  • Midjourney初学者使用教程,简单易懂

     最近AI绘图工具Midjourney 引发了大众的广泛关注,同时“首批因为AI失业的人已经出现”也冲上了热搜,让无论原画师、设计师还是普通人都急于了解这些AI工具 以下就是我自己总结的初学者使用教程 1、网络准备 Midjourney官网地址:https://www.midjourney.com 官网可以直接打开,但

    2024年02月09日
    浏览(53)
  • 【Go语言】Golang保姆级入门教程 Go初学者介绍chapter1

    Golang的学习方向 区块链研发工程师: 去中心化 虚拟货币 金融 Go服务器端、游戏软件工程师 : C C++ 处理日志 数据打包 文件系统 数据处理 很厉害 处理大并发 Golang分布式、云计算软件工程师:盛大云 cdn 京东 消息推送 分布式文件系统 2、Golang的应用领域 区块链应用:区块链

    2024年02月15日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包