美文网首页
R语言基础学习4

R语言基础学习4

作者: 7f0a92cda77c | 来源:发表于2021-06-22 00:49 被阅读0次
    文件读取
    csv打开方式
    1. 默认Excel
    2. 使用记事本打开
    3. Sublime软件打开大文件
    4. R语言读取-读进去就是个对象,后续操作跟原文件无关,不会同步到原文件
    认识分隔符
    1. 逗号-Comma Separated Values = CSV
    2. 制表符(\t)-Tab Separated Values = TSV
    3. 空格
    R语言读取函数
    test <- read.table("ex1.txt",header = T)#读取txt格式,默认是header = F
    test <- read.csv("ex2_B cell receptor signaling pathway.csv",row.names = 1,check.names = F)#这里默认header = T
    
    
    read.table(file, header = FALSE, sep = "", quote = "\"'",
               dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
               row.names, col.names, as.is = !stringsAsFactors,
               na.strings = "NA", colClasses = NA, nrows = -1,
               skip = 0, check.names = TRUE, fill = !blank.lines.skip,
               strip.white = FALSE, blank.lines.skip = TRUE,
               comment.char = "#",
               allowEscapes = FALSE, flush = FALSE,
               stringsAsFactors = default.stringsAsFactors(),
               fileEncoding = "", encoding = "unknown", text, skipNul = FALSE) 
    #check.names = F,防止R语言修改你的特殊符号
    
    read.csv(file, header = TRUE, sep = ",", quote = "\"",
             dec = ".", fill = TRUE, comment.char = "", ...)
    
    文件导出,成为表格文件
    数据导出
    .Rdata-R特有的数据格式
    # 保存为Rdata
    save(test,file = "tes.Rdata")
    # 加载class.Rdata,查看数据类型
    load("tes.Rdata")
    
    base包
    read_*
    导出数据
    if(!require("rio")) install.packages("rio")
    if(!require("readr")) install.packages("readr")
    if(!require("data.table")) install.packages("data.table")
    if(!require("WDI")) install.packages("WDI")
    library(rio) #import(); import_list(); export()
    library(readr)
    library(data.table)#fread()
    library(WDI)
    

    对读取的数据每一列元素进行了比较
    这个函数写得挺好的dfc代表了作者对data_frame_column进行每一列的性质探索

    dfc =function(kk,name=F){#kk是任意的读者输入的数据,name是形式参数-已经默认了是FALSE
      kk=data.frame(kk)#就是把这个输入数据作为数据框来处理
      x=vector()#vector produces a vector of the given length and mode.未知的,需要后面给
      n=0#从0开始给出值
      for(i in colnames(kk)){
        n=n+1#开始赋予
        x[[n]]=class(kk[,i])#这个是核心-判断数据框kk的每一列元素的类型,进行循环
      }
      if(name)names(x)=colnames(kk)#自己选择,需要输入列名否,默认是不输入的
      x#输出x
    }
    
    test <- read.csv("ex2_B cell receptor signaling pathway.csv",row.names = 1,check.names = F)
    
    普通读取法
    x=readLines("ex2_B cell receptor signaling pathway.csv")
    if(!require(tidyr)) install.packages("tidyr")
    if(require(stringr))install.packages("stringr")
    library(tidyr)
    library(stringr)
    n=str_count(x[1],",")#计算总共有多少列,排除了第一列是作为行名,所以数据列是n+1
    dfx=data.frame(x=x) %>%
      tidyr::separate(x,into=paste0("V",1:(n+1)), sep = ",")
    

    readLines()这个函数将每行作为一个字符串,读取的结果是一个大的字符串向量。先读进来,转化为一个"一列的数据框",然后再分割
    关于分割,推荐tidyr::separate()

    readLines

    读完下面的推荐后,我还是喜欢base版本的,随意点,可以自行选择参数
    https://csgillespie.github.io/efficientR/input-output.html
    这个网站-提高R语言编程效率的,不过需要进阶后再看

    https://www.jianshu.com/p/4ea320c0dcc6
    https://csgillespie.github.io/efficientR/input-output.html

    相关文章

      网友评论

          本文标题:R语言基础学习4

          本文链接:https://www.haomeiwen.com/subject/njiuyltx.html