3.readr数据导入

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()  # 如果没有内置,创建自己的月份和日期名称
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,821评论 0 9
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 9,411评论 1 10
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 4,140评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,833评论 1 32
  • 曾经有人说我在潜意识里其实给自己设立了很多条条框框,把自己捆绑在一个“囚笼”里,不允许自己越过任何一个边界,一...
    读目桥阅读 1,534评论 0 0