R数据科学

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()  # 如果没有内置,创建自己的月份和日期名称
上一篇 下一篇

猜你喜欢

热点阅读