在R语言中,变量的命名方式是由必定的要求的:html
变量名 | 是否正确 | 缘由 |
---|---|---|
.dad12 | 正确 | 能够以 . 开始 |
_dad12 | 错误 | 不能够以 _ 开始 |
ad18 | 正确 | 能够以字母开始 |
5aads | 错误 | 不能够以数字开始 |
.5aads | 错误 | . 开始不能够直接接数字 |
ad18% | 错误 | $ 是非法字符 |
总结来讲就是,变量能够包含数字,字符,点符号,能够字符或点开头,可是点后不能直接接数字。app
你能够经过 print(ls())
来查看你的全部变量:函数
> print(ls()) [1] "a" "ad18" "adsaw" "test" "tt"
还能够经过 rm()
来删除变量:post
> print(ls()) [1] "a" "adsaw" "test" "tt"
赋值语句: str <- "Hello World"
,前面的语句是将右侧的字符串赋值给变量 str
,其实在R语言中,=
,<-
和 <<-
均可以起到赋值的做用,然而他们在许多状况下的做用是彻底不同的,具体表现有几种(参考文献:你被R语言的=和<-搞昏了头吗):spa
PS: 最新的R包里面还支持 ->
, ->>
做为赋值符号,如:test(2) -> tt
,这是合法的3d
# 假若有一个函数,接受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
,以一个简单的例子来讲明:code
# 定义一个简单的输出函数,默认参数等于12 test <- function(a=12){ print(a) }
# 当咱们尝试调用函数的时候 # 使用 = 号 test(a = 6) # [1] 6
# 使用 <- 符号 test(a <- 6)
PS: 这些都是在函数中使用的时候存在的差别,平时在控制台直接使用 a = 12
和 a <- 12
是等价的htm
R语言的输出函数,使用极其简单,只须要将须要输出的内容做为参数传入函数便可:blog
> print('dsafafa') [1] "dsafafa"
上面的两个函数都是能用于拼接输出的,他们之间的差别主要体如今, cat
函数只是单纯的拼接而后输出,而 paste
则是在输出的同时,还能将拼接后的数据以新变量保存。ip
> 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拼接的该变量的值为空0 NULL > 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
: 输出文件的标签,当fill
为true
才生效
具体函数及参数: 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函数设置类型为message sink(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
,其余的应该还有不少,后续会补充,这门语言时解释性语言,相对来讲更直白一些,能够直接读取表格类数据。