###**RStudio快捷键** Ctrl + L 清除控制台输出 Ctrl + Enter 运行光标所在行的R代码 或 当前选中行的R代码 Ctrl + Shift + S 运行当前脚本文件 Ctrl + D 删除整行 ###变量赋值 ```r #通过赋值生成一个新变量 x <- 1.5; print(x) y1 <- c(1.5,2.3,8.6,7.4,9.2); println(y1) y2 <- c("MSFT","GOOG","AAPL"); print(y2) y3 <- c(T,F,T,T,F,F); print(y3) 3.1415926 -> z; print(z) #数据在左,变量名在右赋值,但比较少用 assign("t",1.414); print(t) #assign()函数给变量赋值 szSymbolName < - 'GSPC' #assign()函数的有趣用途:将数值赋值给保存在字符串变量中的变量名 assign(szSymbolName,1860); print(GSPC) #1860 #可一次输入多个数据 #后面两个参数分别是换行符和分隔符 cat("x = ",x, "\n",sep="") #显示当前内存中的所有变量、函数名称 ls() #删除内存中的指定名称变量 rm(GSPC) #删除内存中加载的所有变量和函数,慎用 rm(list=ls()) ``` ###分支结构 ```r a <- 1 if(a==1) print("a==1") a <- 2 if(a>1) print("a > 1") | else print("a <= 1") a <- 3 if(a==1){ print("a == 1") }else #注意:这里else必须紧跟在上一个大括号后面 { print("a != 1" ) } #多重分支结构,同样每个else必须和前面的 } 紧紧连在一起 a <- 4 if( a == 1){ print("a == 1") }else if(a == 2){ print("a == 2") }else{ print("Not 1 & 2") } # ifelse()计算第一个逻辑表达式得到结果如果为T,则返回第二个参数,否则返回第三个参数 a <- 2 print( ifelse(a>1,3.2416,1.414)) #switch语句的多重分支结构 n <- 2 switch(n, print("德玛西亚"), print("探险家"), print("多兰之剑"), print("狂徒铠甲"), print("提莫") ) #结果是:探险家 ``` ###循环结构 ```r #for循环 iTotal <- 0 for(i in 1:100){ iTotal <- iTotal +i } cat("1-100的累加和为:",iTotal,"\n",sep="") #字符串也同样可以成功枚举,十分方便 szSymbols <- c("MSFT","GOOG","AAPL","INTL","ORCL","SYMC") for(SymbolName in szSymbols){ cat(SymbolName,"\n",sep="") } # while循环 i <- 1 iTotal <- 0 while(i<=100){ iTotal <- iTotal +i i <- i+1 } cat("1-100的累加和为:",iTotal,"\n",sep="") #repeat循环 i <- 1 iTotal <- 0 repeat #无条件循环,必须在程序内部设法退出 { iTotal <- iTotal + i i <- i+1 if(i <= 100) next else break # 注意:next,break的用法 } cat("1-100的累加和为:",iTotal,"\n",sep="") ``` ###函数使用 ```r #自定义函数 #注意:建立功能丰富,庞大,专业的自定义函数库,类库是公司的核心竞争力 #pt 函数名 #function() 关键字,可以在括号里面写上参数,如果参数有初始值的话,还可以用等号 #Sys.time()获取当前时间 #options设置当前系统的属性 #paste 将两个字符串合并,中间的分隔符为""(默认是空格) pt <- function(){ szCurTime <- as.character.Date(Sys.time()); options(prompt=paste(szCurTime,">",sep=""))} pt() #运行结果:2015-12-31 17:09:45> #定义自己的二元运算符,%anything%。两个百分号之间可以是任何字符串 #定义二元运算符的过程和编写自定义函数本质相同 "%g%" <- function(x,y){ print(x+y) print(x-y) print(x*y) print(x/y) } 4%g%5 #运行结果: #[1] 9 #[1] -1 #[1] 20 #[1] 0.8 ``` ###获取帮助信息 ```r ?print #在RStudio右侧打开相关帮组界面 help(print) #同上 example(print) ?quantmod #打开扩展包整体帮助信息 apropos("print*") #在搜索路径下查找满足正则表达式的所有函数信息 demo(graphics) #图形例子 ```