zoukankan      html  css  js  c++  java
  • R 语言学习日志 1

     
    1. CSV文件的的读取与写出
    2. 数据集筛选
    3. 简单随机抽样 sample函数
     
    正文:
    1. CSV文件的的读取与写出
    • 文件读取: df2 <- read.table("C:\\Users\\Lee\\Desktop\\R语言\\dummyData.csv", header= TRUE, sep=",")
    • 文件写出:write.table(df1, "C:\\Users\\Lee\\Desktop\\R语言\\dummyData.csv", sep=",", row.names=FALSE)

    2. 数据集筛选

    方法一:数据框方法即 newdata[filter条件,filter条件]

    > newdata <- read.table("C:\\Users\\Lee\\Desktop\\R语言\\leadership.csv", header= TRUE, sep=",")
    > newdata
      manager       date country gender age q1 q2 q3 q4 q5
    1       1 2014/10/27      US      M  32  5  4  5  5  5
    2       2 2014/10/28      US      F  45  3  5  2  5  5
    3       3 2014/10/29      UK      F  25  3  5  5  5  2
    4       4 2014/10/30      UK      M  39  3  3  4 NA NA
    5       5 2014/10/31      UK      F  99  2  2  1  2  1

     
    >newdata<- leadership[with(leadership,which(gender=="M")),]
    > newdata
      manager       date country gender age q1 q2 q3 q4 q5
    1       1 2014/10/27      US      M  32  5  4  5  5  5
    4       4 2014/10/30      UK      M  39  3  3  4 NA NA
    > newdata<- leadership[with(leadership,which(gender=="M" & age>34)),]
    > newdata
      manager       date country gender age q1 q2 q3 q4 q5
    4       4 2014/10/30      UK      M  39  3  3  4 NA NA
    注意
    > newdata<- leadership[which(gender=="M" & age>34),]
    Error in which(gender == "M" & age > 34) : object 'gender' not found
    #要指明gender是属于那个数据框,否则会出错
     
    方法二:用subset函数筛选
    subset(dataset,条件#筛选行,筛选列)
     
    newdata <- subset(leadership, gender=="M" & age>25,select=c(gender:q2))#列只取gender:q2列
    > newdata
      gender age q1 q2
    1      M  32  5  4
    4      M  39  3  3
    > newdata <- subset(leadership, gender=="M" & age>25,select=gender:q5)
    > newdata
      gender age q1 q2 q3 q4 q5
    1      M  32  5  4  5  5  5
    4      M  39  3  3  4 NA NA
    >  
     
    3. 简单随机抽样 sample函数

    id <- sample(1:2,nrow(iris),replace=TRUE,prob=c(0.7,0.3)) #1:2表示在1:2这个区间,replace=TRUE有放回的抽取nrow(iris)个值, nrow(iris)是一个数值,即iris观测值的个数,记录条数,有多少行,其中1 ,2的分配比例是prob=c(0.7,0.3)
    > id
      [1] 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 1 2 2 1 2 1 1 1 1 1 1 1 2 1 1 1 2 2 1 2
    [40] 1 1 1 2 1 1 2 1 1 1 2 1 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 2
    [79] 1 1 2 1 1 1 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 2 2 2 1 1 1
    [118] 2 1 2 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 2 1 1 2 1 1 2 1 1 1 2 2 2 1 1
    traindata <- iris[id==1,]#训练集
    testdata <- iris[id==2,] #测试集
     
    【举例】
    > mysample <- binary[sample(1:nrow(binary),3,replace=0),]
    > mysample
        admit gre  gpa rank
    390     0 640 3.51    2
    225     0 800 2.90    2
    44      0 500 3.31    3
    > mysample <- binary[sample(1:nrow(binary),3,replace=0),]
    > mysample
        admit gre  gpa rank
    60      0 600 2.82    4
    213     0 460 2.87    2
    25      1 760 3.35    2
    > mysample <- binary[sample(1:nrow(binary),3,replace=0),]
    > mysample
        admit gre  gpa rank
    30      0 520 3.29    1
    303     1 400 3.15    2
    395     1 460 3.99    3
    >  
     
     
  • 相关阅读:
    事件对象3
    事件对象2
    事件对象1
    编码、摘要、加密
    身份证号码的组成
    Oracle的TO_CHAR()格式化数字为百分数的字符串
    转载和补充:Oracle中的一些特殊字符
    linux Shell(待学)
    linux 管道相关命令(待学)
    linux用户权限、系统信息相关命令(待学)
  • 原文地址:https://www.cnblogs.com/litao1105/p/4096026.html
Copyright © 2011-2022 走看看