相关文章推荐
有腹肌的伤痕  ·  Refactor this ...·  5 月前    · 
儒雅的番茄  ·  Socket 连接异常 ...·  8 月前    · 
狂野的野马  ·  C ...·  1 年前    · 


基础语法

变量

在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

PS: 最新的R包里面还支持 -> , ->> 作为赋值符号,如:test(2) -> tt ,这是合法的

第一种:

test 
a = cat('data:',data,'key:',key) # 输出一个拼接后的字符串
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
# 返回一个拼接后的字符串,可以看到后买你等号的并灭有被影响,
# 而使用
# 和我们想象中的不一致
# [1] "data: testkey key: testdata value: testValue bool: TRUE"
此外,和 = 差异一点的就是, a = 12 表达的仅仅是传值语句,并不会在空间中保留变量,而 a 
print(a)
}# 当我们尝试调用函数的时候
# 使用 = 号
test(a = 6)
# [1] 6
test(a


PS: 这些都是在函数中使用的时候存在的差异,平时在控制台直接使用 a = 12 和 a

输出函数(常用)

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拼接的该变量的值为空0
> str2 = paste(1:9,c("st","nd","rd",rep("th",6)),sep = '',collapse='\n')
[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

具体函数及参数: sink(file = NULL, append = FALSE, type = c("output", "message"), split = FALSE),默认情况下,如果文件已经存在,则它的内容将被覆盖。file:需要输出的文件名

append:设为 true 时追加到文件中,反之则覆盖原文件

type:输出的类型,常用的输出到文件类型为 output, message 类型则是输出警告,停止等 stderr()

split:设为 true 可以保留控制台输出

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

## 首先定义一个可写的文件
## 调用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 ,其他的应该还有很多,后续会补充,这门语言时解释性语言,相对来说更直白一些,可以直接读取表格类数据。