Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539282
  • 博文数量: 102
  • 博客积分: 950
  • 博客等级: 准尉
  • 技术积分: 1094
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-28 16:07
文章分类

全部博文(102)

文章存档

2020年(2)

2016年(5)

2015年(15)

2014年(25)

2013年(18)

2012年(19)

2011年(18)

我的朋友

分类: LINUX

2015-02-26 18:27:54

网站资源
R主页:

CRAN (Comprehensive R Archive Network),



查看已安装工具包
> pkgs <- sort(.packages(all.available = TRUE))
> length(pkgs)
>pkgs
查看可用扩展包
a <- available.packages(contrib.url(
"", "source"))
nrow(a)

获取帮助
1 help.start()
2 RGui>Help>Html help
--starting httpd help server ...
3 ?t.test
4 help("t.test")
5 args(t.test)
-- Use args for a quick reminder of the function arguments...
6 example(t.test)
--Use example to see examples of using the function
7 help.search("t.test")
--Use help.search to search the R documentation on your computer
6 apropos("t.test")
--returns a character vector giving the names of all objects in the search list
matching what
7 查看R包pdf手册
Inside R, use the RSiteSearch function to search by keyword or phrase:
> RSiteSearch("key phrase")
Inside your browser, try using these sites for searching:

This is a Google custom search that is focused on R-specific websites.

Stack Overflow is a searchable Q&A site oriented toward programming issues such
as data structures, coding, and graphics.

The Statistical Analysis area on Stack Exchange is also a searchable Q&A site, but
it is oriented more toward statistics than programming.
其他的一些帮助来源:
? R Mailing Lists
? useR!
? R Journal(R News)
? R论坛与社区(stackoverflow; cos 等等; )
? R语言会议(北京&上海&台北)
? R 爱好者博客

R语言基本操作
元素的类型
R中常用的对象(objects) 包括向量(vector), 因子(factor), 数组
(array), 矩阵(matirx), 数据框(data frame), 时间序列(ts), 列表(list)
等等,
所有的对象都有两个内在属性:元素类型(mode)和长度(length),

元素类型是对象元素的基本种类,常用的有四种:数值型(numeric), 字符
型(character), 复数型(complex)和逻辑型(logical),

虽然也存在其它的
类型, 但是并不能用来表示数据, 例如函数或表达式;长度是对象中元素
的数目。对象的类型和长度可以分别通过函数mode和length得到

向量
向量是R里面的基本对象类型,它可以通过如下几种方式生成:
[1] 1 2 3 4 5 6
> a <- 1:10
[1] 1 2 3 4 5 6 7 8 9 10
> a <- seq(from = 5, to = 20, by = 5) ###from是起始数, to是结尾数, by
是步长
[1] 5 10 15 20

R扩展包介绍
一、扩展包的安装
1
> install.packages("package_name","dir")
> install.packages("mvtnorm","D:/DM/r/R-2.15.2/library/")
二、加载包
包安装后,如果要使用包的功能。必须先把包加载到内存中(默认情况下,R
启动后默认加载基本包),加载包命令:
Library(“包名”)
Require(“包名”)
2、查看当前环境哪些包加载
例如:默认情况下安装7个包(本系列文章使用的R的版:2.15.2)
> find.package()
> library(help=utils)
3、移除包出内存
> detach()
4、把其它包的数据加载到内存中
> data(dsname, package="pkgname")
5、查看这个包里的包有数据
> data( package="包名")
6、列出所有安装的包
> library()

扩展包实例
? plyr包是Hadley Wickham为解决split – apply – combine问题而
写的一个包,其动机在与提供超越for循环和内置的apply函数族的
一个一揽子解决方案。使用plyr包可以针对不同的数据类型,在一
个函数内同时完成split – apply – combine三个步骤,以实现最大
限度的高效和简洁。

? reshape2从不同途径得到的数据的组织方式是多种多样的,很多
数据都要经过整理才能进行有效的分析,数据整形不仅仅是为了改
善数据的外观,也是进行一些统计分析和作图前必要的步骤。

? stringr 包是用来处理字符串的,将原本的字符处理函数进行了打包,
统一了函数名和参数。在增强功能基础上,还能处理向量化数据并
兼容非字符数据。stringr包号称能让处理字符的时间减少95%。

R高级操作
if-else结构为程序提供了一种分支流,
当符合某些条件时,执行某些语句
if(test)
{ ...true statements }else{
...false statements }

for循环允许用户以固定的和预定的次数重复
执行某一语句块
for (n in seq)
{
expression
}

与for循环以固定次数求一组命令的值相
反, While循环以不定的次数求一组语
句的值
while (condition)
{
expression
}

在R中,函数对象可以按如下方式定义
函数名" <- function(a, b, c, ...)
{ expression(a, b, c...) }

R操作技巧
查看数据集的头(尾)样本
> head(x,n) ###从头开始查看,x是数据名,n表示查看的个数,默认是6
> tail(x,n) ###从尾开始
> head(iris,3) ###iris有150个样本5个属性,查看前三行

对一个矩阵或者数据框求行和或者列和
> rowSums(m)
> colSums(m)
> df = matrix(1:9,3,3)
> rowSums(df)

统计向量中分布在各区间的个数
> f <- cut(x, breaks) ###x是向量,breaks是区间端点的向量
> x <- rnorm(1000)
> breaks <- c(-3,-2,-1,0,1,2,3)
> f <- cut(x, breaks)
> summary(f) ###如果不在[-3,3],则归到NA里

根据条件选择向量元素
> v[ seq_along(v) %% n == 0 ] ###seq_along是取下标
> v=1:21
> v[ seq_along(v) %% 3 == 0 ] ###输出下标为3的倍数的元素

? 找出向量v1,v2对应位置的最小(大)值
> pmin(v1,v2)
> pmax(v1,v2)
> pmin(1:5,5:1)

? 将数据框按其中某列排序
> dfrm <- dfrm[order(dfrm$key),] ###key是某列
> print(dfrm)
>dfrm[order(dfrm$month),]


显示对象的结构和类型
> class(x) ###查看对象的类
> mode(x) ###查看对象的模式,返回对象的基础结构
> str(x) ###查看内在结构和内容
查看代码运行时间
> system.time(aLongRunningExpression)
? User CPU time
Number of CPU seconds spent running R
? System CPU time
Number of CPU seconds spent running the operating system, typically for
input/output
? Elapsed time
Number of seconds on the clock
> system.time(sum(rnorm(10000000)))
用户系统流逝
1.07 0.05 1.15

向量计算
除了之间介绍的用c、:、sep()产生向量外,我们还可以通过gl、rep等函数
? rep():产生有规律的数列,重复第一个变量若干次。
> rep(1:3, 1:3)
[1] 1 2 2 3 3 3
? gl():产生一个因子型向量
> rep(1:3, length=10)
[1] 1 2 3 1 2 3 1 2 3 1
a <- gl(3, 4) #gl(k,n)中,k是水平数,n是每个水平重复的次数
[1] 1 1 1 1 2 2 2 2 3 3 3 3
Levels: 1 2 3

一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元
素个素相同(或一个是另一个的整数倍)。
? 加法+
? 乘法*
? 幂^
> a <- 1:3
> b <- 4:9
> a*b
R中的向量运算都是对应运算,而当某一向量元素个数是另一向量的整数倍
时,这时向量运算仍然可以进行。
[1] 4 10 18 7 16 27


点击(此处)折叠或打开

  1. apply系列函数
  2. apply
  3. Apply Functions Over Array Margins
  4. 对阵列行或者列使用函数
  5. apply(X, MARGIN, FUN, ...)
  6. lapply
  7. Apply a Function over a List or Vector
  8. 对列表或者向量使用函数
  9. lapply(X, FUN, ...)
  10. sapply
  11. Apply a Function over a List or Vector
  12. 对列表或者向量使用函数
  13. sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
  14. vapply
  15. Apply a Function over a List or Vector
  16. 对列表或者向量使用函数
  17. vapply(X, FUN, FUN.VALUE, ..., USE.NAMES = TRUE)
  18. tapply
  19. Apply a Function Over a Ragged Array
  20. 对不规则阵列使用函数
  21. tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
  22. eapply
  23. Apply a Function Over Values in an
  24. Environment
  25. 对环境中的值使用函数
  26. eapply(env, FUN, ..., all.names = FALSE, USE.NAMES =
  27. TRUE)
  28. mapply
  29. Apply a Function to Multiple List or Vector
  30. Arguments
  31. 对多个列表或者向量参数使用函数
  32. mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE,
  33. USE.NAMES = TRUE)
  34. rapply
  35. Recursively Apply a Function to a List
  36. 运用函数递归产生列表
  37. rapply(object, f, classes = "ANY", deflt = NULL,how =
  38. c("unlist", "replace", "list"), ...)

R绘图能做什么
ggplot2
1 什么是ggplot2
ggplot2是用于绘图的R语言扩展包,其理念根植于《Grammar of Graphics》
一书。它将绘图视为一种映射,即从数学空间映射到图形元素空间。例如将不
同的数值映射到不同的色彩或透明度。该绘图包的特点在于并不去定义具体的
图形(如直方图,散点图),而是定义各种底层组件(如线条、方块)来合成
复杂的图形,这使它能以非常简洁的函数构建各类图形,而且默认条件下的绘
图品质就能达到出版要求。
2 与lattice包的比较
ggplot2和lattice都属于高级的格点绘图包,初学R语言的朋友可能会在二者
选择上有所疑惑。从各自特点上来看,lattice入门较容易,作图速度较快,图
形函数种类较多,比如它可以进行三维绘图,而ggplot2就不能。ggplot2需
要一段时间的学习,但当你跨过这个门槛之后,就能体会到它的简洁和优雅,
而且ggplot2可以通过底层组件构造前所未有的图形,你所受到的限制只是你
的想象力。
一个例子
下面用ggplot2包内带的汽车测试数据(mpg)
> library(ggplot2)
> p <- ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl))) + geom_point() + geom_smooth()

上图是对几种不同汽缸的数据分别平滑,如果需要对整体数据进行平滑,可将colour参数设置在散
点图层内:
> p <- ggplot(mpg,aes(x=displ,y=hwy))
> p + geom_point(aes(colour=factor(cyl))) + geom_smooth()


阅读(875) | 评论(0) | 转发(0) |
0

上一篇:redis参考

下一篇:sysdig使用心得

给主人留下些什么吧!~~