你的位置:首页 > 数据库

[数据库]R提高篇(一): 输入输出

目录:

  • 文本输出
  • 图形输出
  • 数据输入
  • 数据框输出
  • 文本导入
  • Excel导入

文本输出


  • 语法: sink(file = NULL, append = FALSE, type = c("output", "message"), split = FALSE)
    1. 默认情况,如果文件已经存在,则内容会被覆盖,如果 append = TRUE 可以将文本追加到文件后
    2. split = TRUE 可将输出同时发送到屏幕和输出文件中
    3. sink():结束重定向
  • 示例代码:
    setwd("E:\\R")sink(file = "hello.txt",append = TRUE)cat("Test Sink output")sink()

  •  注意:sink()对图形输出没有影响

图形输出


  • 图形输出使用如下的函数,最后使用dev.off()将输入结果返回终端
  • 矢量图形(PDF,PostScript,SVG), 位图(PNG,JPEG, TIFF)
  • 示例代码:
    pdf("demo.pdf")png("demo1.png")attach(mtcars)plot(wt,mpg)title("pdf graphics demo")detach(mtcars)dev.off()


 

 

数据输入 


  • 通过键盘输入数据两种常见方式:R内置的文本编辑器和代码中直接嵌入数据
  • 通过edit()函数会自动调用一个允许手工输入数据的文本编辑器
  • 示例代码:
    mydata <- data.frame(name=character(0),age=numeric(0),weight=numeric(0))mydata <- edit(mydata)

  •  执行代码,弹出编辑器如下图:

  • 关闭弹出框后,查看mydata结果如下:
    > mydata name age weight1 张三 12   422 李四 14   56> 

数据框输出


    • 上例中将mydata 数据框对象保存本地 .rda文件,同时加载数据代码示例如下:
    • save(mydata,file = "mydata.rda")
    • 如下图:
    • 加载本地mydata.rda文件示例代码如下:
      > remove(list=ls())> load(file = "mydata.rda")> mydata name age weight1 张三 12   422 李四 14   56

 

文本导入


  • read.table() 从带分隔符的文本文件中导入数据,生成数据框对象
  • 示例代码:
    mydata <- read.table("d:\\data.txt",col.names = c("region","Name"))mydata

  •  导入文件后结果如下:

 

  • 导入注意事项:
    1. 导入时默认把字符变量转化为因子,若不希望这样,则设置:stringAsFactors = FALSE
    2. 若对导入的每一列指定一个类,可使用 colClasses , 如:colClasses = c("character","character","numeric")

Excel导入


  • 方法一:将Exce导出为逗号分隔的csv文件,使用read.table()导入数据
  • 使用xlsx包直接导入Excel工作表(需要先安装xlsxjars和rjava包
    1. 在线安装 xlsx 包: install.packages("xlsx")
    2. 示例代码:
      library(xlsxjars)library(xlsx)mydata <- read.xlsx("work.xlsx",sheetIndex = 1)mydata

    3.