r语言的下移命令

Python013

r语言的下移命令,第1张

1.getwd()#查看当前工作目录

2.setwd('E:graduation-design/OC/sctransform')#设置工作路径,引号内的内容是一个例子,注意路径最好不要有中文和特殊符号。

3.install.packages.('包')#下载包

4.library(包)#加载包

5.update.packages(包)# 可以更新已经安装的包。

6.help(package = "包") # 获取该R包的帮助文件

7.head(object) #查看对象的前6行

8.tail()#查看对象的后6行

9.[,1]#访问数据的第一列

10.rm(object) #删除对象

11.save.image("myfile") #保存工作空间到文件myfile中(默认值为.RData)

12.example("foo")#函数foo的使用示例(引号可以省略)

13.class(object) #显示某个对象的类或类型

14.c()#定义向量

15.print() #展示数据

16.mode() # 查看数据类型

17.na.rm = TRUE# 去除缺失值

18.is.na() #检查是否有缺失值

19.na.omit() # 删除包含缺失值的行

20.nchar() #统计字符串长度

21.substr(x = ,start = 1, stop = 3) # 提取字符串(首字母大写)

22.toupper()#将字符串都转化成大写

23.tolower() #将字符串都转化成小写

24.gsub("^(\\w)","\\U\\1",tolower(temp),perl = T) #首字母大写

25.gsub("^(\\w)","\\L\\1",upper(temp),perl = T) #首字母小写

26.Sys.Date() # 显示目前系统的时间

27.read.table("c:/路径",seq = "") # 读取excel

28.read.table(网址) #读取网站内容

29.read.table("clipboard")#读取剪切板中的文件

30.read.table(gzfile("文件")) #读取压缩文件

31.write(x,file = "x,txt") #输出文本

32.write.table(x,gzfile("文件名"))# 输出压缩文件

R语言常用函数整理本篇是基础篇,即R语言自带的函数。 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求长度 subset:求子集 seq,from:to,sequence:等差序列 rep:重复 NA:缺失值 NULL:空对象 sort,order,unique,rev:排序 unlist:展平列表 attr,attributes:对象属性 mode,class,typeof:对象存储模式与类型 names:对象的名字属性 字符型向量 nchar:字符数 substr:取子串 format,formatC:把对象用格式转换为字符串 paste()、paste0()不仅可以连接多个字符串,还可以将对象自动转换为字符串再相连,另外还能处理向量。 strsplit:连接或拆分 charmatch,pmatch:字符串匹配 grep,sub,gsub:模式匹配与替换 complex,Re,Im,Mod,Arg,Conj:复数函数 factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子 table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数 dev.new() 新建画板 plot()绘制点线图,条形图,散点图. barplot( ) 绘制条形图 dotchart( ) 绘制点图 pie( )绘制饼图. pair( )绘制散点图阵 boxplot( )绘制箱线图 hist( )绘制直方图 scatterplot3D( )绘制3D散点图. par()可以添加很多参数来修改图形 title( ) 添加标题 axis( ) 调整刻度 rug( ) 添加轴密度 grid( ) 添加网格线 abline( ) 添加直线 lines( ) 添加曲线 text( ) 添加标签 legend() 添加图例 +, -, *, /, ^, %%, %/%:四则运算 ceiling,floor,round,signif 1、round() #四舍五入 例:x <- c(3.1416, 15.377, 269.7) round(x, 0) #保留整数位 round(x, 2) #保留两位小数 round(x, -1) #保留到十位 2、signif() #取有效数字(跟学过的有效数字不是一个意思) 例:略 3、trunc() #取整 floor() #向下取整 ceiling() #向上取整 例:xx <- c(3.60, 12.47, -3.60, -12.47) trunc(xx) floor(xx) ceiling(xx) max,min,pmax,pmin:最大最小值 range:最大值和最小值 sum,prod:向量元素和,积 cumsum,cumprod,cummax,cummin:累加、累乘 sort:排序 approx和approx fun:插值 diff:差分 sign:符号函数 abs,sqrt:绝对值,平方根 log, exp, log10, log2:对数与指数函数 sin,cos,tan,asin,acos,atan,atan2:三角函数 sinh,cosh,tanh,asinh,acosh,atanh:双曲函数 beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:与贝塔函数、伽玛函数、组合数有关的特殊函数 fft,mvfft,convolve:富利叶变换及卷积 polyroot:多项式求根 poly:正交多项式 spline,splinefun:样条差值 besselI,besselK,besselJ,besselY,gammaCody:Bessel函数 deriv:简单表达式的符号微分或算法微分 array:建立数组 matrix:生成矩阵 data.matrix:把数据框转换为数值型矩阵 lower.tri:矩阵的下三角部分 mat.or.vec:生成矩阵或向量 t:矩阵转置 cbind:把列合并为矩阵 rbind:把行合并为矩阵 diag:矩阵对角元素向量或生成对角矩阵 aperm:数组转置 nrow, ncol:计算数组的行数和列数 dim:对象的维向量 dimnames:对象的维名 rownames,colnames:行名或列名 %*%:矩阵乘法 crossprod:矩阵交叉乘积(内积) outer:数组外积 kronecker:数组的Kronecker积 apply:对数组的某些维应用函数 tapply:对“不规则”数组应用函数 sweep:计算数组的概括统计量 aggregate:计算数据子集的概括统计量 scale:矩阵标准化 matplot:对矩阵各列绘图 cor:相关阵或协差阵 Contrast:对照矩阵 row:矩阵的行下标集 col:求列下标集 solve:解线性方程组或求逆 eigen:矩阵的特征值分解 svd:矩阵的奇异值分解 backsolve:解上三角或下三角方程组 chol:Choleski分解 qr:矩阵的QR分解 chol2inv:由Choleski分解求逆 ><,>,<=,>=,==,!=:比较运算符 !,&,&&,|,||,xor(): 逻辑运算符 logical: 生成逻辑向量 all, any:逻辑向量都为真或存在真 ifelse():二者择一 match, %in%:查找 unique:找出互不相同的元素 which:找到真值下标集合 duplicated:找到重复元素 optimize,uniroot,polyroot:一维优化与求根 if,else, ifelse, switch: 分支 for,while,repeat,break,next: 循环 apply,lapply,sapply,tapply,sweep:替代循环的函数。 function:函数定义 source:调用文件 ’ call:函数调用 . C,.Fortran:调用C或者Fortran子程序的动态链接库。 Recall:递归调用 browser,debug,trace,traceback:程序调试 options:指定系统参数 missing:判断虚参是否有对应实参 nargs:参数个数 stop:终止函数执行 on.exit:指定退出时执行 eval,expression:表达式计算 system.time:表达式计算计时 invisible:使变量不显示 menu:选择菜单(字符列表菜单) 其它与函数有关的还有: delay, delete.response, deparse, do.call, dput, environment , formals, format.info, interactive, is.finite, is.function, is.language, is.recursive , match.arg, match.call, match.fun, model.extract, name, parse 函数能将字符串转换为表达式expression deparse 将表达式expression转换为字符串 eval 函数能对表达式求解 substitute, sys.parent , warning, machine cat,print:显示对象 sink:输出转向到指定文件 dump,save,dput,write:输出对象 scan,read.table,readlines, load,dget:读入 ls,objects:显示对象列表 rm, remove:删除对象 q,quit:退出系统 .First,.Last:初始运行函数与退出运行函数。 options:系统选项 ?,help,help.start,apropos:帮助功能 data:列出数据集 head()查看数据的头几行 tail()查看数据的最后几行 每一种分布有四个函数: d―density(密度函数),p―分布函数,q―分位数函数,r―随机数函数。 比如,正态分布的这四个函数为dnorm,pnorm,qnorm,rnorm。下面我们列出各分布后缀,前面加前缀d、p、q或r就构成函数名: norm:正态, t:t分布, f:F分布, chisq:卡方(包括非中心) unif:均匀, exp:指数, weibull:威布尔, gamma:伽玛, beta:贝塔 lnorm:对数正态, logis:逻辑分布, cauchy:柯西, binom:二项分布, geom:几何分布, hyper:超几何, nbinom:负二项, pois:泊松 signrank:符号秩, wilcox:秩和, tukey:学生化极差 sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量, sort,order,rank与排序有关, 其它还有ave,fivenum,mad,quantile,stem等。 R中已实现的有chisq.test,prop.test,t.test。 cor,cov.wt,var:协方差阵及相关阵计算 biplot,biplot.princomp:多元数据biplot图 cancor:典则相关 princomp:主成分分析 hclust:谱系聚类 kmeans:k-均值聚类 cmdscale:经典多维标度 其它有dist,mahalanobis,cov.rob。 ts:时间序列对象 diff:计算差分 time:时间序列的采样时间 window:时间窗 lm,glm,aov:线性模型、广义线性模型、方差分析 quo()等价于quote() enquo()等价于substitute()

reshape2包的进化版—tidyr包

tidyr包的作者是Hadley Wickham。这个包常跟dplyr结合使用。

本文将演示tidyr包中下述四个函数的用法:

gather—宽数据转为长数据。类似于reshape2包中的melt函数

spread—长数据转为宽数据。类似于reshape2包中的cast函数

unit—多列合并为一列

separate—将一列分离为多列

下面使用datasets包中的mtcars数据集做演示。

library(tidyr)

library(dplyr)

head(mtcars)

mpg cyl disp  hp drat    wt  qsec vs am gear carb

Mazda RX4        21.0  6  160 110 3.90 2.620 16.46  0  1    4    4

Mazda RX4 Wag    21.0  6  160 110 3.90 2.875 17.02  0  1    4    4

Datsun 710        22.8  4  108  93 3.85 2.320 18.61  1  1    4    1

Hornet 4 Drive    21.4  6  258 110 3.08 3.215 19.44  1  0    3    1

Hornet Sportabout 18.7  8  360 175 3.15 3.440 17.02  0  0    3    2

Valiant          18.1  6  225 105 2.76 3.460 20.22  1  0    3    1

为方便处理,在数据集中增加一列car

mtcars$car <- rownames(mtcars)

mtcars <- mtcars[, c(12, 1:11)]

gather

gather的调用格式为:

gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)

这里,...表示需要聚合的指定列。

与reshape2包中的melt函数一样,得到如下结果:

mtcarsNew <- mtcars %>% gather(attribute, value, -car)

head(mtcarsNew)

car attribute value

1        Mazda RX4      mpg  21.0

2    Mazda RX4 Wag      mpg  21.0

3        Datsun 710      mpg  22.8

4    Hornet 4 Drive      mpg  21.4

5 Hornet Sportabout      mpg  18.7

6          Valiant      mpg  18.1

tail(mtcarsNew)

car attribute value

347  Porsche 914-2      carb    2

348  Lotus Europa      carb    2

349 Ford Pantera L      carb    4

350  Ferrari Dino      carb    6

351  Maserati Bora      carb    8

352    Volvo 142E      carb    2

如你所见,除了car列外,其余列聚合成两列,分别命名为attribute和value。

tidyr很好的一点是可以只gather若干列而其他列保持不变。如果你想gather在map和gear之间的所有列而保持carb和car列不变,可以像下面这样做:

mtcarsNew <- mtcars %>% gather(attribute, value, mpg:gear)

head(mtcarsNew)

car carb attribute value

1        Mazda RX4    4      mpg  21.0

2    Mazda RX4 Wag    4      mpg  21.0

3        Datsun 710    1      mpg  22.8

4    Hornet 4 Drive    1      mpg  21.4

5 Hornet Sportabout    2      mpg  18.7

6          Valiant    1      mpg  18.1

spread

spread的调用格式为:

spread(data, key, value, fill = NA, convert = FALSE, drop = TRUE)

与reshape2包中的cast函数一样,得到如下结果:

mtcarsSpread <- mtcarsNew %>% spread(attribute, value)

head(mtcarsSpread)

car carb  mpg cyl disp  hp drat    wt  qsec vs am gear

1        AMC Javelin    2 15.2  8  304 150 3.15 3.435 17.30  0  0    3

2 Cadillac Fleetwood    4 10.4  8  472 205 2.93 5.250 17.98  0  0    3

3        Camaro Z28    4 13.3  8  350 245 3.73 3.840 15.41  0  0    3

4  Chrysler Imperial    4 14.7  8  440 230 3.23 5.345 17.42  0  0    3

5        Datsun 710    1 22.8  4  108  93 3.85 2.320 18.61  1  1    4

6  Dodge Challenger    2 15.5  8  318 150 2.76 3.520 16.87  0  0    3

unite

unite的调用格式如下:

unite(data, col, ..., sep = "_", remove = TRUE)

where ... represents the columns to unite and col represents the c

这里,...表示需要合并的列,col表示合并后的列。

我们先虚构一些数据:

set.seed(1)

date <- as.Date('2016-01-01') + 0:14

hour <- sample(1:24, 15)

min <- sample(1:60, 15)

second <- sample(1:60, 15)

event <- sample(letters, 15)

data <- data.frame(date, hour, min, second, event)

data

date hour min second event

1  2016-01-01    7  30    29    u

2  2016-01-02    9  43    36    a

3  2016-01-03  13  58    60    l

4  2016-01-04  20  22    11    q

5  2016-01-05    5  44    47    p

6  2016-01-06  18  52    37    k

7  2016-01-07  19  12    43    r

8  2016-01-08  12  35      6    i

9  2016-01-09  11  7    38    e

10 2016-01-10    1  14    21    b

11 2016-01-11    3  20    42    w

12 2016-01-12  14  1    32    t

13 2016-01-13  23  19    52    h

14 2016-01-14  21  41    26    s

15 2016-01-15    8  16    25    o

现在,我们需要把date,hour,min和second列合并为新列datetime。通常,R中的日期时间格式为"Year-Month-Day-Hour:Min:Second"。

dataNew <- data %>%

unite(datehour, date, hour, sep = ' ') %>%

unite(datetime, datehour, min, second, sep = ':')

dataNew

datetime event

1  2016-01-01 7:30:29    u

2  2016-01-02 9:43:36    a

3  2016-01-03 13:58:60    l

4  2016-01-04 20:22:11    q

5  2016-01-05 5:44:47    p

6  2016-01-06 18:52:37    k

7  2016-01-07 19:12:43    r

8  2016-01-08 12:35:6    i

9  2016-01-09 11:7:38    e

10  2016-01-10 1:14:21    b

11  2016-01-11 3:20:42    w

12  2016-01-12 14:1:32    t

13 2016-01-13 23:19:52    h

14 2016-01-14 21:41:26    s

15  2016-01-15 8:16:25    o

separate

separate的调用格式为:

separate(data, col, into, sep = "[^[:alnum:]]+", remove = TRUE,

convert = FALSE, extra = "warn", fill = "warn", ...)

我们可以用separate函数将数据恢复到刚创建的时候,如下所示:

data1 <- dataNew %>%

separate(datetime, c('date', 'time'), sep = ' ') %>%

separate(time, c('hour', 'min', 'second'), sep = ':')

data1

date hour min second event

1  2016-01-01  07  30    29    u

2  2016-01-02  09  43    36    a

3  2016-01-03  13  59    00    l

4  2016-01-04  20  22    11    q

5  2016-01-05  05  44    47    p

6  2016-01-06  18  52    37    k

7  2016-01-07  19  12    43    r

8  2016-01-08  12  35    06    i

9  2016-01-09  11  07    38    e

10 2016-01-10  01  14    21    b

11 2016-01-11  03  20    42    w

12 2016-01-12  14  01    32    t

13 2016-01-13  23  19    52    h

14 2016-01-14  21  41    26    s

15 2016-01-15  08  16    25    o

首先,将datetime分为date列和time列。然后,将time列分为hour,min,second列。