3.readr数据导入
2019-07-16 本文已影响0人
木制品_1125
readr进行数据导入
一、入门
read_csv() # 读取逗号分隔文件
read_csv2() # 读取分号分隔文件
read_tsv() # 读取制符表分隔文件
read_delim() # 读取任意分隔符文件
read_fwf() # 读取固定宽度文件
read_table() # 读取固定宽度文件的特殊形式,读取空白字符分隔文件
read_log() # 读取Apache风格的文件,需要安装webreadr包
read_csv("the first line of metadata
the second line of metadata
x,y,z
1,2,3",
skip = 2) # skip 参数用来跳过 前 n 行
read_csv("# A comment I want to skip
x,y,z
1,2,3",
comment = "#") # comment 参数用来丢弃以定义字符开头的行
read_csv("1,2,3\n4,5,6", col_names = F) # col_names用来规定第一行不作为列名,列名由X1至Xn命名
read_csv("1,2,3\n4,5,6", col_names = c("x", "y", "z")) # col_names也可以用来定义列名
read_csv("a,b,c\n1,2,.", na = ".") # na用来将文件中的某字符改为缺失值
二、解析向量
# parse_*()函数使用,解析失败一般以NA表示
parse_logical(c("T","F","T","F",1,0,NA,"STR")) # 注意结果,1和0也判断为逻辑值
parse_integer(c("1","2","3",1,2,3)) # 带不带引号无所谓
parse_date(c("2010-01-01", "2010/01/01", "2010.01.01")) # 必须为字符串,且日期之间以.为分隔不行
parse_datetime()
parse_time()
1.解析数值
##不同国家不同数值分隔符和特殊符号
## decimal_mark的默认值为".",grouping_mark的默认值为",",以美国为标准
parse_double("1.23")
parse_double("1,23", locale = locale(decimal_mark = ","))
parse_number("$123,456,789") # parse_number可忽略分组符号,可忽略数值前后的非数值型字符(美国)
parse_number("123.456.789", locale = locale(grouping_mark = ".")) # 欧洲
parse_number("123'456'789", locale = locale(grouping_mark = "'")) # 瑞士
2.解析字符串
##readr全面支持UTF-8编码,默认也是UTF-8,但是世界上有很多编码方式
x1 <- "El Ni\xf1o was particularly bad this year"
x2 <- "\x82\xb1\x82\xf1\x82\xc9\x82\xbf\x82\xcd"
parse_character(x1, locale = locale(encoding = "Latin1"))
parse_character(x2, locale = locale(encoding = "Shift-JIS"))
guess_encoding(charToRaw(x1)) # 猜测编码方式,虽然不一定对
parse_character(x1, locale = locale(encoding = "ISO-8859-1"))
guess_encoding(charToRaw(x2))
parse_character(x2, locale = locale(encoding = "KOI8-R"))
3.解析因子
fruit <- c("apple", "banana")
parse_factor(c("apple", "banana", "orange"), levels = fruit) # levels指定一个已知向量,只要存在该向量中没有的值就会报错
4.解析日期、日期时间和时间
parse_datetime("2010-10-01T2010") # 接受ISO 8601国际标准,年、月、日、时、分、秒排列
parse_datetime("2010-10-01") # 如果时间被省略就返回午夜
parse_date(c("2010-01-10","2019/07/12")) # 接受四位数的年份
parse_time(c("08:10:56 pm", "20:10")) # 接受 小时:分钟,可选择加秒,或者加am/pm
parse_date("01/02/15", "%d/%m/%y") # 为解析字符创建示例,时分秒也可以
parse_date("01/02/15", "%m/%d/%y")
parse_date("01/02/15", "%y/%m/%d")
date_names_langs() # 查看内置语言列表
date_names_lang("en") # 查看某个类别的具体内置符号
date_names_lang("fr")
date_names() # 如果没有内置,创建自己的月份和日期名称