美文网首页
#R的学习笔记07

#R的学习笔记07

作者: ks_c | 来源:发表于2021-02-02 15:47 被阅读0次

    title: "R的学习笔记05"
    author: "ks_c"
    date: "2021/2/2"
    output: html_document


    <font face="宋体">以下为R数据分析指南与速查手册 第三章的内容</font>

    导出

    导出变量

    使用save(..., list = character(),file = stop("'file' must be specified"))可以保存单个变量或一些变量。文件名为.rda或.Rdata。

    • ...:要存储的变量
    • list:变量标签/名称
    • file:文件名及路径

    如果想保存整个环境,用save.image函数。常用用法为save.image(file = ".RData"),用file指定文件名即可。

    导出txt或csv

    导出为txt格式:

    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 = "")

    导出文件中:

    • 字符串型数据将用引号括起来,如果不想有引号,可设置quote = FALSE。
      (注意导出的csv文件中也是如此,只是如果用Excel打开的话,其中的引号不显示出来,如果用文本查看器如Notepad++打开,就可以看到引号。)
    • 如果要保存的数据不是数据框格式,会被转化为数据框格式,然后再保存为csv或txt文件。
    • 导出文件中默认包含行名(行序号)和列名,如果不需要,在write.table中可以设定row.names = FALSE及col.names = FALSE,在write.csv中设定row.names=FALSE(在write.csv中,可以通过col.names给csv文件修改列名,但是不能取消其列名)。
    • 更多参数设置,可查看write.table的帮助文档。在write.csv中,会将行名与列名交叉格以空字符串输出,但write.table会将其空缺。这会导致他们重新导入时,对行名的处理不同。
    # 数据生成
    name <- c("Alice","Bob","Christien","Einstein")
    age <- c(10,20,14,25)
    gender <- c("F","M","F","M")
    weight <- c(25,50,30,54)
    nationality <- c("USA","UK","China","German")
    height <- c(1.2,1.65,1.43,1.75)
    example_df <- data.frame(name,age,gender,weight,nationality,height)
    
    # 保存
    write.csv(example_df, file = "example_df.csv")
    write.table(example_df, file = "example_df.txt")
    write.table(example_df, file = "example_df2.txt",quote = FALSE)#字符串没有引号
    

    导出图片

    直接保存而不展示图片:

    • 新建保存格式(称之为一个图形设备),如png、jpg、pdf(pdf是矢量图),
    • 运行绘图相关的代码,
    • 关闭图形设备。
    png("example_plot.png") # 新建一个图片保存格式,png可以是jpg、pdf等
    plot(1:10) # 绘图
    dev.off() # 关闭图形设备
    

    图片的长、宽、分辨率等参数可参考png等的帮助文档。

    如果已经画好了图,可以使用如下代码输出到文件中。

    dev.copy(png, 'example_plot2.png')
    dev.off()
    

    如果最开始打开的是Windows窗口,则可用savePlot()函数,其用法为:

    savePlot(filename="Rplot",
    type=c("wmf", "png", "jpeg", "jpg", "bmp", "ps"),
    device=dev.cur())
    
    #例子:
    windows(width = 9, height = 9, rescale = "fit")  # 打开一个Windows窗口
    plot(1:10,type = "l")
    savePlot(filename="Myplot",type="pdf")
    # savePlot(filename="Myplot",type="png")
    ## 支持下列格式:"wmf", "emf", "png", "jpg", "jpeg", "bmp", "tif", "tiff", "ps", "eps", "pdf"
    dev.off()
    
    

    导出文本

    readr::write_file(txt, file_name.txt", append = FALSE)

    writeLines(txt, con = fileConn,sep = "")
    close(fileConn)

    sink("cat.txt")
    操作
    sink()

    cat(... = ,file = ,sep = ,fill = ,labels = ,append = )

    fileConn<-file("writeChar.txt")
    writeChar(txt, con = fileConn, eos = NULL, useBytes = FALSE)
    close(fileConn)

    writeChar

    R与python通用的数据

    feather

    #R中
    library(feather)
    path <- "my_data.feather"
    write_feather(df, path)
    df <- read_feather(path)
    
    #py中
    import feather
    path = 'my_data.feather'
    feather.write_dataframe(df, path)
    df = feather.read_dataframe(path)
    

    数据载入

    数据

    read.table默认的分隔符为空格,read.csv2默认的分隔符为分号;
    可以改变默认的分隔符。

    read.csv(file,
    header = TRUE,
    sep = ",",
    quote = """,
    dec = ".",
    fill = TRUE,
    comment.char = "", ...)

    按行或单元导入(表格数据)
    按行导入用readLines,按单元导入用scan

    文本

    整体读取可用readr::read_file,
    按行读取可用readLines,如

    txt<- read_file("write_file.txt")
    

    相关文章

      网友评论

          本文标题:#R的学习笔记07

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