zoukankan      html  css  js  c++  java
  • R语言:读取数据

    主要学习如何把几种常用的数据格式导入到R中进行处理,并简单介绍如何把R中的数据保存为R数据格式和csv文件。


    1、保存和加载R的数据(与R.data的交互:save()函数和load()函数)
    a <- 1:10
    save(a, file = "data/dumData.Rdata") # data文件为当前工作目录下的文件,必须存在
    rm(a)
    load("data/dumData.Rdata")
    print(a)

    2、导入和加载.csv文件(write.csv()函数和read.csv()函数)
    var1 <- 1:5
    var2 <- (1:5) / 10
    var3 <- c("R", "and", "Data Mining", "Examples", "Case Studies")
    a <- data.frame(var1, var2, var3)
    names(a) <- c("VariableInt", "VariableReal", "VariableChar")
    write.csv(a, "data/dummmyData.csv", row.names = FALSE)
    b <- read.csv("data/dummmyData.csv")

    3、导入SPSS/SAS/Matlab等数据集
    # 导入spss的sav格式数据则要用到foreign扩展包,加载后直接用read.spss读取sav文件
    library(foreign)
    mydata=read.spss('d:/test.sav')
    # 上面的函数在很多情况下没能将sav文件中的附加信息导进来,例如数据的label,
    # 那么建议用Hmisc扩展包的spss.get函数,效果会更好一些。
    library(Hmisc)
    data=spss.get("D:/test.sav")

    导入时候,如果报了这样的错误:
    Unrecognized record type 7, subtype 24 encountered in system file
    可以使用下面的这个包:
    library(memisc)
    data<-as.data.set(spss.system.file("D:/test.sav"))

    4、导入数据库中的数据
    library(RODBC)
    Connection <- odbcConnect(dsn="servername",uid="userid",pwd="******")
    Query <- "SELECT * FROM lib.table WHERE ..."
    # Query <- readChar("data/myQuery.sql", nchars=99999) 或者选择从SQL文件中读入语句
    myData <- sqlQuery(Connection, Query, errors=TRUE)
    odbcCloseAll()

    5、导入Excel数据
    library(RODBC)
    channel=odbcConnectExcel("d:/test.xls")
    mydata=sqlFetch(channel,'Sheet1') # 如果是Excel2007格式数据则要换一个函数odbcConnectExcel2007

    检索:write.table write.csv区别  不写入行名  row.names  不写入列名  col.names

    > write.table(x,file="mydata",row.names=FALSE,col.names=FALSE)  #可以
    > write.csv(x,file="mydata2",row.names=FALSE,col.names=FALSE)  #不可以
     

    1. 首先用getwd() 获得当前目录,用setwd("C:/data")设定当前目录:

    2.0 数据保存:创建数据框d: 

    >d <- data.frame(obs = c(1, 2, 3), treat = c("A", "B", "A"), weight = c(2.3, NA, 9))

    2.1 保存为简单文本:

    >write.table(d, file = "c:/data/foo.txt", row.names = F, quote = F)

    2.2 保存为逗号分割文本:

    >write.csv(d, file = "c:/data/foo.csv", row.names = F, quote = F)

    2.3 保存为R格式文件:

    >save(d, file = "c:/data/foo.Rdata")

    2.4 保存工作空间镜像: 

    >save.image( ) = save(list =ls(all=TRUE), file=".RData")

    3.0 数据读取:读取函数主要有:read.table( ), scan( ) ,read.fwf( ).

    3.1 用 read.table( ) 读 "c:data” 下houses.dat:

    >setwd("C:/data"); HousePrice <- read.table(file="houses.dat") 

    如果明确数据第一行做表头,则使用header选项:

    >HousePrice <- read.table("houses.dat", header=TRUE)

    read.table( ) 变形有: aread.csv( ),read.csv2( ), read.delim( ), read.delim2( ).前两读取逗号分割数据,后两个读取其他分割符数据。

    3.2  用scan( ) 比read.table( ) 更灵活。但要指定 变量类型:如:C:datadata.dat:

    M 65 168

    M 70 172

    F 54 156

    F 58 163

    >mydata <- scan("data.dat", what = list("", 0, 0)) 

    >mydata <- scan("data.dat", what = list(Sex="", Weight=0, Height=0))

    3.3 用read.fwf( )读取文件中一些固定宽度数据:如:C:datadata.txt:

    A1.501.2

    A1.551.3

    B1.601.4

    >mydata <- read.fwf("data.txt", widths=c(1, 4, 3), col.names=c("X","Y","Z"))

    4.0 excel格式数据读取:

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

    >mydata <- read.delim("clipboard")

    4.2 使用程序包 RODBC.如: c:dataody.xls

    Sex Weight Height

    M 65 168

    M 70 172

    F 54 156

    F 58 163

    > library(RODBC)

    > z <- odbcConnectExcel("c:/data/body.xls")

    > foo <- sqlFetch(z, "Sheet1")

    > close(z)

  • 相关阅读:
    http 事务
    URI、URL、URN
    媒体类型(MIME类型)
    资源
    WEB客户端和服务器
    如何解决新浪微博返回结果中的中文编码问题
    新浪微博 使用OAuth2.0调用API
    新浪微博 授权机制研究
    hmac库 密钥相关的哈希运算消息认证码
    ValueError: Expecting property name: line 1 column 1 (char 1)
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6633656.html
Copyright © 2011-2022 走看看