文件的读入和写出

如题所述

第1个回答  2022-07-16

1.read.table()函数及其衍生函数
usage:
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)

read.csv(file, header = TRUE, sep = ",", quote = """,
dec = ".", fill = TRUE, comment.char = "", ...)#指定的分割符为“comma”

read.csv2(file, header = TRUE, sep = ";", quote = """,
dec = ",", fill = TRUE, comment.char = "", ...)#指定的分割符为";"

read.delim(file, header = TRUE, sep = "\t", quote = """,
dec = ".", fill = TRUE, comment.char = "", ...)#指定的分割符为"\t"

read.delim2(file, header = TRUE, sep = "\t", quote = """,
dec = ",", fill = TRUE, comment.char = "", ...)#指定的分割符为"\t"

arguments:
file :需要读入的文件,要指定其详细路径
header:逻辑值,默认为FALSE,一般情况下需要指定为TRUE,这样才有列名
sep:指定列与列之间的分隔方式,在read.table中可以任意指定( ,\t)
quote:指定用于包绕字符型数据的字符,默认为“\ ”
dec:用于指明文件中小数的小数点
row.names:该参数用于指定行名,是一个向量,可以使用row.names = NULL强制行进行编号。
col.names:指定列名的向量。缺省情况下是又"V"加上列序构成,即V1,V2,V3......
as.is:该参数用于确定read.table()函数读取字符型数据时是否转换为因子型变量。当其取值为FALSE时,该函数将把字符型数据转换为因子型数据,取值为TRUE时,仍将其保留为字符型数据
na.strings:用于指定缺失数据的值,以转换为NA。
colClasses:用于指定列所属类的字符串向量。
nrows:整型数。用于指定从文件中读取的最大行数。负数或其它无效值将会被忽略。
skip:整型数。读取数据时忽略的行数。
comment.char:字符型。包含单个字符或空字符的向量。代表注释字符的开始字符。可以使用""关闭注释。

2.扩展包中的两个常用函数:作用相似,但是运行速度更快,默认将stringAaFactor设置为FALSE

后边这些函数是更具read_delim()函数,分别指定了delim参数为(, ; \t),且这些分隔符不能修改
read_csv (file, col_names = TRUE, col_types = NULL,
locale = default_locale(), na = c("", "NA"), quoted_na = TRUE,
quote = """, comment = "", trim_ws = TRUE, skip = 0,
n_max = Inf, guess_max = min(1000, n_max),
progress = show_progress(), skip_empty_rows = TRUE)
read_csv2 (file, col_names = TRUE, col_types = NULL,
locale = default_locale(), na = c("", "NA"), quoted_na = TRUE,
quote = """, comment = "", trim_ws = TRUE, skip = 0,
n_max = Inf, guess_max = min(1000, n_max),
progress = show_progress(), skip_empty_rows = TRUE)
read_tsv (file, col_names = TRUE, col_types = NULL,
locale = default_locale(), na = c("", "NA"), quoted_na = TRUE,
quote = """, comment = "", trim_ws = TRUE, skip = 0,
n_max = Inf, guess_max = min(1000, n_max),
progress = show_progress(), skip_empty_rows = TRUE)
返回值:tibble。

usage:从文件中读取部分或全部文本行。
readLines(con = stdin(), n = -1L, ok = TRUE, warn = TRUE,
encoding = "unknown", skipNul = FALSE)
con :待读取的文件的连接或者详细的路径
n:要读取的最大行数,-1L表示完全读取
encoding:一般设置为"utf-8",该参数在读取数据的格式乱码时使用

length(txt)
返回值:原来的文本的每一行是一个字符串,所有的行组成可一个向量。可以用length()函数查看其长度(元素的个数)。

返回值:tibble数据结构

需要使用foreign包中的系列函数:
可以使用read.spss()、read.dta()、read.ssd()等分别用于读取spss、stata和sas的文件,但是都用的很少,其返回值为data.frame格式
也可以使用haven包中的read_spss、read_sas、read_stata函数,其返回值为tibble数据类型。

直接使用data()函数,会返回当前系统中所有的内置数据集及其存在的包,其数据类型为一个list,一共有四个组件,在result组件中可以看到其具体的数据集和对应的包。
关于data()函数本身:
usage:Loads specified data sets, or list the available data sets.
data(..., list = character(), package = NULL, lib.loc = NULL,
verbose = getOption("verbose"), envir = .GlobalEnv,
overwrite = TRUE)
arguments:
主要就是...:表示数据集的名字
packages:表示数据集所在的包

usage:
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 = "")
write.csv()#默认分隔符为逗号
write.csv2()#默认分隔符为“;”
x:需要导出的数据
file:导出的文件路径,要写完文件名及其后缀
sep:分隔符,默认为空格(” “),也就是以空格为分割列
row.names:是否导出行序号,默认为TRUE,也就是导出行序号
col.names:是否导出列名,默认为TRUE,也就是导出列名
quote:字符串是否使用引号表示,默认为TRUE,也就是使用引号表示;如果给该参数传入数值型向量(表示列数),则会对其代表的列中的元素加引号。
append:逻辑值,默认为FALSE,表示是用现有的内容覆盖文件中原有的内容。(仅在x是字符串类型时有用)
eol:要在每行(行)末尾打印的字符。例如,eol=“\r\n”将在类似于Unix的操作系统上生成Windows的行尾,eol=“\r”将按Excel:mac 2004的预期生成文件。

该函数用于将文件写出为一个无分隔形式的文本文件
writeLines(text, con = stdout(), sep = "\n", useBytes = FALSE)

write():Write Data to a File
usage :
write(x, file = "data",
ncolumns = if(is.character(x)) 1 else 5,
append = FALSE, sep = " ")
arguments:
x:表示要写出的数据,通常是一个vector
file:文件的路径和文件名
ncolumns:输出的文件的列数,默认为1或者5
append:是否将输出结果追加到原来的文件中
sep:指定文本内容的分隔符;如tab,comma,空格等

save:可以用与保存R中的任何东西为任何形式的文件
save(..., list = character(),
file = stop("'file' must be specified"),
ascii = FALSE, version = NULL, envir = parent.frame(),
compress = isTRUE(!ascii), compression_level,
eval.promises = TRUE, precheck = TRUE)

save.image(file = ".RData", version = NULL, ascii = FALSE,
compress = !ascii, safe = TRUE)
arguments:
...:表示一个待保存的对象的名称
list:一个包含要保存的对象名称的字符向量。
file:连接或保存数据的文件的名称。必须是保存的文件名。
save.image(无任何参数)只是“保存我当前工作空间”的捷径。

相似回答