R(4) read/write

write.table()


  • 数据导入导出最常用的方式是使用read.table()函数和write.table()处理CSV文件的导入导出,read.table()和write.table()可以处理包含行、列标签的数据框
  • Usage: write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",   eol = "\n", na = "NA", dec = ".", row.names = TRUE,                            col.names = TRUE, qmethod = c("escape", "double"),  fileEncoding = "")
    1. x: 要写入的对象的名称
    2. file: 文件名(缺省时对象直接被“写”在屏幕上)
    3. append: 是否为增量写入
    4. quote: 一个逻辑型或者数值型向量:如果为TRUE,则字符型变量和因子写在双引 号""中;若quote是数值型向量则代表将欲写在""中的那些列的列标。(两种 情况下变量名都会被写在""中;若quote = FALSE则变量名不包含在双引号中)
    5. sep: 文件中的字段分隔符
    6. eol: 指定行尾符,默认为‘\n‘
    7. na: 表示缺失数据的字符
    8. dec: 用来表示小数点的字符
    9. row.names: 一个逻辑值,决定行名是否写入文件;或指定要作为行名写入文件的字符型 向量
    10. col.names: 一个逻辑值(决定列名是否写入文件);或指定一个要作为列名写入文件中 的字符型向量
    11. qmethod: 若quote=TRUE,则此参数用来指定字符型变量中的双引号"如何处理: 若参数值为"escape" (或者"e",缺省)每个"都用\"替换;若值为"d"则每 个"用""替换
  • 类似的,write.table()也提供了一些变体:write.csv(…)、write.csv2(…)

    > remove(list = ls())
    > space_path <- c("E:\\RML\\")
    > file_path <- paste0(space_path,"C45.csv")
    > data1 <- data.frame(id=c("1","2","3"),name=c("张三","李四","王五"))
    > write.table(x= data1)
    "id" "name"
    "1" "1" "张三"
    "2" "2" "李四"
    "3" "3" "王五"
    > write.table(x= data1,file = file_path)

read.table()


  • Usage: read.table(file, header = FALSE, sep = "", quote = "\"‘",
                         col.names, na.strings = "NA", colClasses = NA, fill = !blank.lines.skip,
                          strip.white = FALSE, blank.lines.skip = TRUE,comment.char = "#",
                         fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
    1. file : 要处理的文件。可以用字符串指定文件名,也可以使用函数,如:file(‘file.dat‘,encoding=‘utf-8‘)
    2. header:首行是否为字段名。如果不指定,read.table()会根据行标签进行判断,即如果首行比下面的行少一列,就是header行
    3. col.names: 如果指定,则用指定的名称替代首行中的列名称
    4. sep:指定分隔符。默认为空白符(空格,制表符,换行符等)。可以指定为‘ ‘, ‘\t‘等
    5. quote:指定字符串分隔符,如" 或 ‘
    6. na.strings: 指定缺损值。默认为NA
    7. fill :文件中是否忽略了行尾字段。如果有,必须指定为 TRUE
    8. strip.white:是否去除字符串字段首尾的空白
    9. blank.lines.skip:是否忽略空白行,默认为TRUE。如果要指定为FALSE,需要同时指定 fill = TRUE 才有效
    10. colClasses:指定每个列的数据类型
    11. comment.char : 注释符。默认使用#作为注释符号,如果文件中没有注释,指定comment.char = "" 会比较安全
  • 为了使用方便,read.table()函数还提供了一些变体,这些变体为read.table()的一些参数设定了默认值,如:read.csv、read.csv2、read.delim、read.delim2

    > tmp <- read.table(file = file_path)
    > library(DT)
    > datatable(tmp)

保存为R格式文件


  • 保存及读取代码示例

    > save(data1,file = "demo.rda")
    >
    > remove(list = ls())
    > load(file = "demo.rda")
    > print(data1)
      id name
    1  1 张三
    2  2 李四
    3  3 王五

读取Excel


  • 利用剪切板:选择excel数据,再用(CTRL+C)复制。在R中键入命令:

    > read.delim("clipboard")
      北汽新能源.ES210 X1442 X617 X42.79 X524 X36.34 X559
    1 北汽新能源-EU260  1641 1308  79.71 1278  77.88 1268
    2 北汽新能源-EV150  1377  822  59.69  775  56.28  814
    3 北汽新能源-EV160  1515  230  15.18  486  32.08  652
  • 将文件保存为csv文件,通过write.table读入
  • 加载xlsx包导入excel数据

    #install.packages("xlsx")
    Sys.setlocale(locale = "chinese")
    library(rJava)
    library(xlsxjars)
    library(xlsx)
    read.xlsx(file = "E:\\RML\\demo.xlsx",sheetName ="Sheet1",encoding = "utf-8")

writelines


  • Usage:writeLines(text, con = stdout(), sep = "\n", useBytes = FALSE)
  • 示例代码:

    mytxt <- c("my valiate writelines function ,this is a demo!")
    writeLines(text = mytxt,con = "E:\\RML\\demo.html",useBytes = TRUE)

readlines


    • Usage: readLines(con = stdin(), n = -1L, ok = TRUE, warn = TRUE,encoding = "unknown", skipNul = FALSE)

      > readLines(con = "E:\\RML\\demo.html",encoding = "UTF-8")
      [1] "my valiate writelines function ,this is a demo!"
    • 读取网页示例

      > rows<-readLines("http://news.ifeng.com/mainland/special/ptxyy/",encoding = "UTF-8",warn=FALSE)
      > rows[123:123];
      [1] "    [‘上海‘,‘上海市闵行区中医院<br/>上海华美美莱整形医院<br/>上海万众医院<br/>上海安真医院<br/>上海福华医院<br/>上海玛丽女子医院<br/>上海真爱女子医院<br/>上海心脏病医院<br/>上海远大心胸医院<br/>上海仁爱医院<br/>上海天大医疗美容医院<br/>上海沪申五官科医院<br/>上海博爱医院<br/>上海新虹桥医院<br/>上海九龙男子医院<br/>上海城市女子医院<br/>上海西郊骨科医院<br/>上海真美妇科医院<br/>上海南浦妇科医院<br/>上海虹桥医院<br/>上海健桥医院<br/>上海博爱医院<br/>上海长江医院<br/>解放军411医院<br/>上海阳光中医医院<br/>上海英港泌尿外科医院<br/>上海阿波罗男子医院<br/>上海玫瑰女子医院<br/>上海康新医院<br/>上海圣爱医院<br/>上海同德医院<br/>上海安平医院<br/>江东泌尿外科医院<br/>上海九州泌尿医院<br/>上海青城医院<br/>上海博大医院<br/>上海中亚医院‘,‘38‘],"
时间: 2024-10-13 06:57:27

R(4) read/write的相关文章

使用R语言计算均值,方差等

R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [1] 5.855 2 计算中位数 median(height) [1] 5.92 3 计算标准差 sd(height) [1] 0.1871719 4 计算方差 var(height) [1] 0.03503333 5 计算两个变量之间的相关系数 cor(height,log(height)) [1] 0

R语言快速上手入门

R语言快速上手入门 课程学习网址:http://www.xuetuwuyou.com/course/196 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本教程深入浅出地讲解如何使用R语言玩转数据.课程中涵盖R语言编程的方方面面,内容涉及R对象的类型.R的记号体系和环境系统.自定义函数.if else语句.for循环.S3类R的包系统以及调试工具等.本课程还通过示例演示如何进行向量化编程,从而对代码进行提速并尽可能地发挥R的潜能.本课程适合立志成为数据科学家的

R语言学习-词频分析

概念 1.语料库-Corpus 语料库是我们要分析的所有文档的集合,就是需要为哪些文档来做词频 2.中文分词-Chinese Word Segmentation 指的是将一个汉字序列切分成一个一个单独的词语. 3.停用词-Stop Words 数据处理的时候,自动过滤掉某些字或词,包括泛滥的词如Web.网站等,又如语气助词如的.地.得等. 需要加载的包 1.tm包 安装方式:install.packages("tm") 语料库: Corpus(x,readerControl) x-语料

R语言使用机器学习算法预测股票市场

quantmod 介绍 quantmod 是一个非常强大的金融分析报, 包含数据抓取,清洗,建模等等功能. 1. 获取数据 getSymbols 默认是数据源是yahoo 获取上交所股票为 getSymbols("600030.ss"), 深交所为 getSymbols("000002.sz").  ss表示上交所, sz表示深交所 2. 重命名函数 setSymbolLookup 3. 股息函数 getDividends 4. 除息调整函数 adjustOHLC

R语言数据挖掘实战系列(2)

二.R语言简介 R语言是一种为统计计算和图形显示而设计的语言环境,具有免费.多平台支持,同时可以从各种类型的数据源中导入数据,具有较高的开放性以及高水准的制图功能.R是一个体系庞大的应用软件,主要包括核心的R标准包和各专业领域的其他包.R在数据分析.数据挖掘领域具有特别优势. R安装 R可在其主页(https://www.r-project.org/)上获得,根据所选择的平台进行下载安装.安装完成之后启动R.为了方便使用R,可使用免费的图形界面编辑器RStudio,可从https://www.r

R语言常用的软件包

> update.packages() --- Please select a CRAN mirror for use in this session --- CRAN mirror 1: 0-Cloud [https]                     2: 0-Cloud 3: Algeria [https]                     4: Algeria 5: Argentina (La Plata)                6: Australia (Canbe

R安装部署

1.yum install -y  readline-devel  gcc*  libXt-devel   openssl* 2.下载编译安装zlib   wget http://ncu.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz    tar -zxvf zlib-1.2.8.tar.gz    cd zlib-1.2.8    ./configure --prefix=/opt/zlib-1.2.8    ma

【R】数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)

函数 read.table 是读取矩形格子状数据最为便利的方式.因为实际可能遇到的情况比较多,所以预设了一些函数.这些函数调用了 read.table 但改变了它的一些默认参数.  注意,read.table 不是一种有效地读大数值矩阵的方法:见下面的 scan 函数. 一些需要考虑到问题是: 编码问题 如果文件中包含非-ASCII字符字段,要确保以正确的编码方式读取.这是在UTF-8的本地系统里面读取Latin-1文件的一个主要问题.此时,可以如下处理 read.table(file("fil

Ubuntu 16.04 LTS 安装R及RStudio Server

1.R的安装 1.1首先添加镜像源 # Ctrl+Alt+T打开终端 $ sudo gedit /etc/apt/sources.list # 加入新镜像源 回车之后会自动跳出一个文本框,然后在相似的地方输入 deb http://cran.rstudio.com/bin/linux/ubuntu trusty/ 加载镜像源还可以使用以下方法: deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu xenial/ deb https://

利用图形窗口分割法将极坐标方程:r=cos(θ/3)+1/9用四种绘图方式画在不同的窗口中

利用图形窗口分割法将极坐标方程:r=cos(θ/3)+1/9用四种绘图方式画在不同的窗口中. 解:MATLAB指令: theta=0:0.1:6*pi;rho=cos(theta/3)+1/9; >> polar(theta,rho) >> >> plot(theta,rho) >> semilogx(theta,rho) >> grid >> hist(rho,15) 结果分别如下图: 图1 图2 图3 图4