R语言基础编程技巧汇编 - 17

1.       timestamp函数输出当前时间

timestamp()

##------ Sun Apr 05 20:54:06 2015 ------##

该函数可以输入当前的系统时间,可用于耗时很长的程序定时输出当前时间,用于判断程序是否正常运行;也可用于调试,判断哪一段代码效率较低。

2.       多个比较的boxplot图

a=c(1,2,3,4,5,2,1,2,4,2,5,6)

b=c("A","A","B","B","C","C","C","C","D","D","D","D")

c=c(1,2,3,4,5,5,2,1,2,4,2,5,6,5,6)

d=c("A","A","A","A","B","B","B","C","C","C","C","C","D","D","D")

boxplot(a~b,boxwex=.24,at=1:4-.2,col="orange",axes=FALSE)

# 定义箱式图的宽度

box();axis(2)

axis(1,at=c(1:4-.2,1:4+.2),rep(c("\u2640","\u2642"),each=4))

boxplot(c~d,boxwex=.24,at=1:4+.2,col="yellow",add=TRUE,axes=FALSE)# add

3.       绘制地图

require(maps)

map(database = "state", fill =FALSE, boundary = TRUE, interior = FALSE, col = "grey60", lwd = 0.6,lty = 1, add = FALSE, resolution = 0)

map(database = "state", fill =FALSE, boundary = FALSE, interior = TRUE, col = "grey70", lwd = 0.5,lty = "31", add = TRUE, resolution = 0)

par(cex.axis = 0.7)

map.axes()

x1 = c(-109, -108, -103, -99, -97, -99,-107)

y1 = c(39, 43, 48, 43, 39, 33, 37)

xspline(x = x1, y = y1, shape = 0.9, open =FALSE, border = NA, col = "#00FF0037")

x2 = c(-107, -107, -103, -101, -99, -101,-105)

y2 = c(39, 41, 43, 41, 39, 37, 38)

xspline(x = x2, y = y2, shape = 0.9, open =FALSE, border = NA, col = "#FF000073")

points(-103, 39, pch = 19)

require(fields)

data(ozone2)

x<-ozone2$lon.lat

y<- ozone2$y[16,] # June 18, 1987

fit<- Tps(x,y)

surface(fit)

US(add=TRUE, col="magenta",lwd=2)

title("Daily max 8 hour ozone inPPB,  June 18th, 1987")

4.       绘制双重坐标轴

绘制双重坐标轴的图形不是一个好的图形,会给读者带来很大的迷惑。

plot(1, main = ‘如何折磨读者的眼睛‘)

axis(2, runif(7, .6, 1.4), line=1)

axis(4, runif(3, .6, 1.4), line=1)

5.       绘制密度函数和分布函数曲线

x=seq(-5,5,0.1)

plot(x,dnorm(x),type="l")   #密度函数曲线

plot(x,pnorm(x),type="l")   #分布函数曲线

6.       三维图中对Z坐标的要求

z是matrix!(不是函数)你要理解三维图形和二维图形是不一样的,并不是说有三个向量x、y、z就能画出3D图来的(除非是只画点),3D图形通常都是一个曲面,因此需要一个grid形式的数据,也就是每一对(x,
y)对应的z值。如:

persp(x=1:10, y=1:10,z=matrix(rnorm(10*10),10,10))

7.      判断数据框是否相同

df1 == df2

这样比较可以判断数据框中每一对应元素是不是相等。

8.       用exists函数判断变量是否已经存在

if(!exists("dataPath")){

dataPath<-choose.dir(default ="", caption = "Please select a data source folder")

}

9.      为散点图的点做标注

x=c(1,1,2,2,1,1,2)

y=c(1,2,2,5,5,3,3)

lbls <- c(

"list(x1,y1^(1))","list(x2,y2^(2))","list(x3,y3^(3))",

"list(x4,y4^(4))","list(x5,y5^(5))","list(x6,y6^(6))",

"list(x7,y7^(7))"

)

lbls <- paste("(",lbls,")", "")

{plot(x,y,main="X vsY",xlab="X", ylab="Y",xlim=c(.9,2.1),ylim=c(.9,5))

lines(x,y,col="black",lty="dotted")

text(x,y-.1,labels=parse(text=lbls))}

10. density函数的解释

x=rnorm(1000)   # x是你希望对什么数据作核密度估计,density()中n的默认值为512

n=1000          # n是你希望对多少个点作核密度估计,x不太长时可指定n=length(x)

a=density(x,n)  # a是density()给出的全部计算结果

a[1:2]          # 你想要的密度估计曲线上所有点的坐标,其中

a$y             # density()给出的核密度估计值,即图中的纵坐标

a$x             # 与a$y对应的横坐标

density.default # density()函数代码

11. 利用getAnywhere函数查找R对象

有些函数的源代码是隐藏状态,可以尝试用下列方法获取:

getAnywhere(princomp.default)

12. 绘制极坐标图形

library(plotrix)

t<-seq(-pi,pi,0.1)

r<-1-cos(t/2)

radial.plot(r,t,rp.type="p",lwd=3,line.col=2)

13. 利用assign函数对字符串形式的变量名赋值

for(i in 1:6) { #-- Create objects  ‘r.1‘, ‘r.2‘, ... ‘r.6‘ --

nam <- paste("r", i, sep = ".")

assign(nam, 1:i)

}

ls(pattern = "^r..$")

##-- Global assignment within a function:

myf <- function(x) {

innerf <- function(x) assign("Global.res", x^2, envir =.GlobalEnv)

innerf(x+1)

}

myf(3)

Global.res # 16

a <- 1:4

assign("a[1]", 2)

a[1] == 2          # FALSE

get("a[1]") == 2   # TRUE

14. 负数开方运算

可转化为复数的运算

(-1+0i)^(1/3)

[1] 0.5+0.8660254i

15. R语言中表示“空集”

以下是不同数据类型的“空集”

list()

c()

data.frame()

factor()

时间: 2024-08-06 07:56:07

R语言基础编程技巧汇编 - 17的相关文章

R语言基础编程技巧汇编 - 26

1.      监视R语言包更新状态的网站 R语言包的数量已经有近万个,及时关注新发布的包,以及已发布的包的更新状态,非常重要,下列网站提供了这个功能,读者可以经常访问: http://lib.stat.cmu.edu/R/CRAN/web/packages/available_packages_by_date.html 2.      使用命令行参数的R程序示例 以Windows系统为例,按照以下步骤: 1.    把Rscript.exe的路径加入到Path环境变量中,在我的机器上设置如下:

R语言基础编程技巧汇编 - 前言

前 言 R语言是近年来迅速崛起的用于数据分析和数据挖据的编程语言,它由一批统计学家开发,进而广泛应用于各种需要进行统计分析的行业.在大数据时代,其优雅的编码风格.包罗万象的开发包.强大的数据处理能力,吸引了来自各个领域从事数据分析相关工作的人员. R语言是强大自由的,但是其学习曲线也是陡峭的.本人具有C/C++,C#,Python等多种语言的开发经验,就本人的体会,从R语言初级开发水平进阶到中级开发水平,要比其他编程语言更加困难,往往很多初学者就在这个阶段放弃了,相当可惜.另外,对于大量没有很多

R语言基础编程技巧汇编 - 27

1.      向量循环移位 library("magic") x <- 1:10 magic::shift(x,1) # [1] 10 1  2  3 4  5  6 7  8  9 magic::shift(x,1) # [1] 10 1  2  3 4  5  6 7  8  9 magic::shift(x,2) # [1] 9 10  1  2 3  4  5 6  7  8 magic::shift(x,3) # [1] 8  9 10  1 2  3  4 5  6

R语言基础编程技巧汇编 - 25

1.      使用rClr包访问.NET库 下载地址:http://r2clr.codeplex.com/ library(rClr) clrLoadAssembly('c:/path/to/myassembly.dll') myObj <-clrNew('MyNamespace.MyClass,MyAssemblyName') clrCall(myObj, 'SayHelloWorld') 2.      向C语言代码传递数据框参数示例 data.frame是一个list对象 #includ

R语言基础编程技巧汇编 - 20

1.      RCurl设置代理 假设代理地址是10.10.10.10:端口是:8080. 设置代理地址如下: curl<-getCurlHandle(proxy="10.10.10.10:8080"); getURL("http://baidu.com",curl=curl) 2.      抓取网页中的表格 library(XML) library(RCurl) u ="http://en.wikipedia.org/wiki/List_of_

R语言基础编程技巧汇编 - 16

1.      利用magrittr包进行管道操作 很多情况下,管道操作符可以很大程度的简化代码,并且使其更加直观.易读.易懂,下面就简单说明了useR2014上颇受R用户喜爱的magrittr包. the pipe operatoris one (if not THE) most important innovation introduced, this year, to the Recosystem Intro 类似于linux中的|,可以把前一个表达式(函数)的输出(而不用定义中间变量来表

R语言基础编程技巧汇编 - 23

1.      注意在pdf中绘图,每次plot都要调用dev.off()关闭设备 for(i in 1:10) { pdf(paste(i,'plots.pdf',sep='')) plot(0) dev.off() } 上述代码中,如果dev.off移到循环外面,则只有最后的图能正常生成出来. 2.       read.table函数跳过空白行 read.table的skip参数可以设置跳过前面的n行,blank.lines.skip参数可以设置跳过完全空白的行. 3.      对box

c语言基础编程

作业: 1.二进制,八进制,十进制之间的相互转换 2.测试转义字符 3.测试强制类型转换 4.测试赋值运算符  = += -= *= /= %= <<= >>= ^= |= &= number += 2; 5.测试不同类型数字的运算(+ - * /)结果 6.从键盘输入一个实数,求其绝对值. 7.从键盘输入三个数,按升序输出. 8.已知方程 ax*x + bx + c = 0,输入a.b,求方程的根. 9.从键盘输入x,求y的值: y = 1  若 x > 0  0 

R语言基础

##数据获取 x1=round(runif(100,min=80,max=100)) x2=round(rnorm(100,mean=80, sd=7)) x3=round(rnorm(100,mean=80,sd=18)) x3[which(x3>100)]=100 num=seq(2005138101,length=100) x=data.frame(num,x1,x2,x3) write.table(x, "grade.txt") ##数据分析 y=read.table(&