入门
- readr将平面文件转换为数据框
read_csv()、read_csv2()、read_tsv()
read_csv()
- read_csv() 一般使用数据第一行为列名称,使用skip = n跳过前n行,comment = #来丢弃所有#开头的行
- col_names = FALSE
- \n添加新行
- col_names传递向量作为列名称
- na设定使用哪些值表示缺失值
p101练习题
- read_delim()
- col_names, col_types, locale, na, quoted_na, trim_ws, n_max, guess_max, progress
- col_positions
read_csv("x,y\n1,'a,b'", quote = "'")
- 1️⃣Warning message:
In rbind(names(probs), probs_f) :
number of columns of result is not a multiple of vector length (arg 1)
第一行只有两个数,自动丢弃最后一列
2️⃣第二行自动缺失值替补
3️⃣ 第二行自动缺失值替补
4️⃣无误
5️⃣1;3读在一起 ,使用read_csv2()读取
8.3 解析向量
parse_*()函数
-8种解析函数
parse_logical, parse_integer(), parse_double,parse_number(),parse_character(),parse_factor(),parse_datetime(),parse_date(),parse_time()
解析数值
不同地区的数值变大习惯不同,要统一化
parse_double("1,23", locale = locale(decimal_mark = ","))
parse_number("$100")
可忽略数值前后的文本
解析字符串
UTF-8
guess_encoding()帮助找出编码方式
因子 parse_factor()
- data_names()等
2.设置为同一个符号后,会报错
decimal_mark设为,,grouping_mark会默认为.,反之亦然 - 主要是默认时间和日期的格式
au_locale <- locale(date_format = "%d/%m/%Y")
parse_date("02/01/2006", locale = au_locale)
#> [1] "2006-01-02"
5.read_csv()读取逗号分隔文件
read_csv2()读取分号分隔文件
- 欧洲:Latin script
- 日本: JIS X 0208, Shift JIS, ISO-2022-JP
- 中国: GB 2312, GBK, GB 18030
- 韩国: KS X 1001, EUC-KR, ISO-2022-KR
- parse_date(d1, "%B %d, %Y")
8.4 解析文件
每个parse_xyz()函数都有对应的col_xyz()函数
- 所有列作为字符向量读入,易诊断出问题
- read_lines()按行读入字符向量
- read_file()
- write_csv()保存成csv文件时,类型信息丢失 write_tsv()
- write_rds(), read_rds()
- feather包实现快速二进制格式