根底语法

变量

在R语言中,变量的命名形式是由肯定的要求的:

变量名是否正确起因
.dad12正确能够以 . 开始
_dad12谬误不能够以 _ 开始
ad18正确能够以字母开始
5aads谬误不能够以数字开始
.5aads谬误. 开始不能够间接接数字
ad18%谬误$ 是非法字符

总结来说就是,变量能够蕴含数字,字符,点符号,能够字符或点结尾,然而点后不能间接接数字。

你能够通过 print(ls()) 来查看你的所有变量:

> print(ls())[1] "a"     "ad18"  "adsaw" "test"  "tt"   

还能够通过 rm() 来删除变量:

> print(ls())[1] "a"     "adsaw" "test"  "tt" 

赋值语法

赋值语句: str <- "Hello World" ,后面的语句是将右侧的字符串赋值给变量 str ,其实在R语言中,=<-<<- 都能够起到赋值的作用,然而他们在许多状况下的作用是齐全不一样的,具体表现有几种(参考文献:你被R语言的=和<-搞昏了头吗):

PS: 最新的R包外面还反对 -> , ->> 作为赋值符号,如:test(2) -> tt ,这是非法的

第一种:<- 生成匿名函数变量

# 如果有一个函数,承受4个参数作为变量进行数据处理test <- function(data, key, value, bool){  a = cat('data:',data,'key:',key) # 输入一个拼接后的字符串  c <- paste('value:',value,'bool:',bool) # 输入一个拼接后的字符串  g <- paste(a,c)  print(g)}# 接着我要调用这个函数(程序=)test(data='testdata', key='testkey', value='testValue', bool=TRUE) # 返回一个拼接后的字符串,能够看到当初是一一对应的# [1] "data: testdata key: testkey value: testValue bool: TRUE"# 接着我要调用这个函数(乱序=)test(key='testkey', data='testdata', bool=TRUE, value='testValue')# 返回一个拼接后的字符串,能够看到当初还是一一对应的# [1] "data: testdata key: testkey value: testValue bool: TRUE"# 接着我要调用这个函数(乱序<-)test(key<-'testkey', data<-'testdata', bool=TRUE, value='testValue')# 返回一个拼接后的字符串,能够看到后买你等号的并灭有被影响,# 而应用<-符号的最终却是依照函数定义的程序赋值,# 和咱们设想中的不统一# [1] "data: testkey key: testdata value: testValue bool: TRUE"

第二种:<- 生成变量

此外,和 = 差别一点的就是, a = 12 表白的仅仅是传值语句,并不会在空间中保留变量,而 a <- 12 是一个表达式,这在一些其余语法中就像是 var a = 12 ,以一个简略的例子来阐明:

#  定义一个简略的输入函数,默认参数等于12test <- function(a=12){    print(a)}
# 当咱们尝试调用函数的时候# 应用 = 号test(a = 6)# [1] 6

# 应用 <- 符号test(a <- 6)

PS: 这些都是在函数中应用的时候存在的差别,平时在控制台间接应用 a = 12 a <- 12 是等价的

输入函数(罕用)

print

R语言的输入函数,应用极其简略,只须要将须要输入的内容作为参数传入函数即可:

> print('dsafafa')[1] "dsafafa"

cat 和 paste

下面的两个函数都是能用于拼接输入的,他们之间的差别次要体现在, cat 函数只是单纯的拼接而后输入,而 paste 则是在输入的同时,还能将拼接后的数据以新变量保留。

> str1 = cat(1:9,c("st","nd","rd",rep("th",6)),"n",sep = '/')1/2/3/4/5/6/7/8/9/st/nd/rd/th/th/th/th/th/th/n> str1 #以cat拼接的该变量的值为空0NULL> str2 = paste(1:9,c("st","nd","rd",rep("th",6)),sep = '',collapse='\n')> str2[1] "1st\n2nd\n3rd\n4th\n5th\n6th\n7th\n8th\n9th"

此外,函数内的参数代表的意义,共有参数

sep:拼接两头的宰割符,默认为空格

paste 公有参数:

collapse:拼接完结的符号,默认为空格

cat 公有参数:

file:文件或链接的名称,有值时输入到文件中,没有则输入到打印台;
append:为 true 时将数据新增到文件开端, false 时覆盖文件原始内容,当且仅当参数file是文件名而非链接时,此参数才无效;
fill:是否填充(具体细节还要思考),当为 false 时默认\n换行输入
labels: 输入文件的标签,当 filltrue 才失效

sink

具体函数及参数: sink(file = NULL, append = FALSE, type = c("output", "message"), split = FALSE),默认状况下,如果文件曾经存在,则它的内容将被笼罩。

file:须要输入的文件名
append:设为 true 时追加到文件中,反之则笼罩原文件
type:输入的类型,罕用的输入到文件类型为 output, message 类型则是输入正告,进行等 stderr()
split:设为 true 能够保留控制台输入

其余的都好了解,其中 message 类型的数据例子如下:

## 首先定义一个可写的文件zz <- file("C:/Users/Tutu/Desktop/testR/all.Rout", open = "wt")## 调用sink函数设置类型为messagesink(zz, type = "message")## 应用try 函数检测log函数try(log("a"))##随后在之前新建的文件中能够看到 :## Error in log("a") : 数学函数中用了非数值参数

其余的输入办法

## PDF文件pdf("filename.pdf")    ## Windows图元文件win.metafile("filename.wmf")## PBG文件png("filename.png")    ## JPEG文件jpeg("filename.jpg")## BMP文件bmp("filename.bmp")    ## PostScript文件postscript("filename.ps")    

输出函数

临时获取到的时 readLines ,其余的应该还有很多,后续会补充,这门语言时解释性语言,相对来说更直白一些,能够间接读取表格类数据。