R语言备忘录
Posted 无安书
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言备忘录相关的知识,希望对你有一定的参考价值。
读取 Excel 文件,这个问题,应该辩证性地看待:
1/ 是否经常需要读取 Excel 文件,如果是日常需要,并且需求大、频率高,那么确实需要在这方面深入学习。
2/ 一年就只碰到两三次读取 Excel 文件的需求。。。 那么,很明显地,其实并不需要掌握专门地读取 Excel 文件的办法
因此,下面的内容主要针对以上两种情况来分别展开说明。
Excel 文件固然常见,但因为其本身的简洁性、以及缺乏严格的格式控制规则,导致了往往出现的 Excel 文件会因为种种人为修改原因,成为了 「脏乱的数据」
事实上,csv 文件最为常见,也更为规范,具备平台通用性。针对于不经常读取 Excel 文件的人来说,实在没有必要深入学习并掌握 Excel 文件如何读取。更多的简便方法则是:
1/ 很多人压根就不检查原有的 Excel 文件里的内容是否符合 csv 格式的要求,直接转。。。
2/ 考虑过度,多想一步,在犹豫不决后,果断地选择 「UTF-8 格式的 csv」
这里需要说明的是:
CSV UTF-8 (逗号分隔)
CSV (逗号分隔)
#---------------------
文本文件(制表符分隔)
Unicode 文本
csv 以及 txt 格式分别对应的第一种是标准的格式,而各自对应的第二种则:会加入 BOM (为:byte-order mark, 字节顺序标志)。目前来说,后者并不能被通用使用,主要见于 Windows 平台上的规范。因此,标准的转格式方式,也仅仅是选择前者。
BOM 格式,无法被准确读取识别。
而 csv 文件,使用read.csv()
完成读取; txt 格式,使用 read.delim() 完成读取。
3/ Excel 里的大问题:
① 出现合并列名称
② 出现数据 「缺少」, 也就是所谓的简写。。。
如下:
A 120 76
78 55
83 90
82 104
B 93 96
65 50
98 86
C 94 73
96 113
80 55
100 71
105 85
'a b c d e
120 76 52 62 120
78 55 118 105 70
83 90 94 73 110
82 104 96 113 52
93 96 80 55 101
65 50 100 71 55
98 86 105 85 82 ' %>%
read.table(text =., header = T)
a <- read.delim('clipboard')
nrows
skip
row.names
colClasses
fill
fillEncoding
text
xlsx
,readxl
,writexl
,XLConnect
,openxlsx
readxl
,
writexl
更被
推荐使用,但
xlsx
需要 Java 环境
。
library(cranlogs)
cran_downloads(c("xlsx","readxl","writexl",'XLConnect',
'openxlsx'),
'last-week') %>%
ggplot(aes(date,count,
group = package)) +
geom_line() +
geom_point(aes(pch = package))
cran_downloads(c("xlsx","readxl","writexl",'XLConnect',
'openxlsx'),'last-week') -> g1
q1 <- unique(g1$date)
library(scales)
q + scale_x_date(breaks = q1,
labels = date_format('%b %d'))
q + scale_x_date(breaks = q1,
labels = date_format('%b %d')) +
theme(axis.text.x = element_text(angle = 25,
hjust = 1))
cran_downloads(c("xlsx","readxl","writexl",'XLConnect',
'openxlsx'),
'last-month') %>%
ggplot(aes(date,count,
group = package)) +
geom_line() +
geom_point(aes(pch = package))
cran_downloads(c("xlsx","readxl","writexl",'XLConnect',
'openxlsx'),
from = '2019-08-09',
to = '2020-08-09') -> g2
f <- c(23,30,31,30,31,31,29,31,30,31,30,31,9)
ff <- factor(rep(c(month.abb[8:12],month.abb[1:7],'Aug2'), f) %>%
rep(5) ,
levels = c(month.abb[8:12],month.abb[1:7],'Aug2'))
#-----------------------
g3 <- cbind(g2,ff)
aggregate(g3$count,
by = list(package = g3$package,
month = g3$ff),sum) -> h1
#++++++++++++++++++++++++++
ggplot(h1,aes(month,x,group = package)) +
geom_line() +
geom_point(aes(pch = package)) +
ylab('count')
H <- seq(as.Date('2019-08-09'),
by = 'month',
length.out = 13) %>% rep(each = 5)
h2 <- h1 %>% mutate(month = H)
#--------------------------------
ggplot(h2,aes(month,x,group = package)) +
geom_line() +
geom_point(aes(pch = package)) +
ylab('count') -> Q
#********************************
fg <- seq(as.Date('2019-08-09'),
by = 'month',
length.out = 13)
Q + scale_x_date(breaks = fg,
labels = date_format('%Y %b')) +
theme(axis.text.x = element_text(angle = 45,
hjust = 1))
#+++++++++++++++++++++++++++++++++++++++++++++++
library(Visualize.CRAN.Downloads)
processPckg("xlsx")
processPckg("writexl")
processPckg("readxl")
processPckg("XLConnect")
processPckg("openxlsx")
processPckg(c("xlsx","readxl","writexl",'XLConnect',
'openxlsx'),
"2001-01-01")
retrievePckgData("xlsx") %>%
as.data.frame() -> xl2
ggplot(xl2,aes(date,count)) +
geom_line()
上图中,有一天的下载量突增,需要引起重视:
而这一天为:
> xl2[which.max(xl2$count),]
date count package
272 2020-05-07 25390 xlsx
以上是关于R语言备忘录的主要内容,如果未能解决你的问题,请参考以下文章