本文通过阅读《R语言实战》的读书笔记,或者参杂,中途查找一些资料的补充,仅供阅读学习。。。
R语言编程中的常见错误
1.严格大小写
2.必要的引号 install.packages(“gclus”)
3.函数调用时使用括号
4.变量的引用是$不是. 例如:A$x是指数据框A中的变量x。
5.#:注释
多行注释:if(FALSE){
填写注释内容
}
4.自动扩展功能,原本三个元素的,如果输入第十个元素,会自动扩展
5.R下标从1开始
6.变量无法声明,他们在被首次赋值时生成
标准统计软件类似SAS,SPSS,Stata
标量是只含一个元素的向量,用于保存常量
F<-3
方括号给定位置,可以用于访问任意位置的元素a[3],a[,3],使用下标和方括号来选择矩阵中的行、列或元素。X[i,]指矩阵X中的第i行,X[,j]指第j列,X[i,j]指第i行第j个元素。选择多行或多列时,下标i和j可为数值型向量
a <- c(2:6)生成数值序列
C( )
获取帮助命令1.32
工作空间命令
输入和输出
1.输入
source(“filename.R”) 将执行filename脚本,R为扩展名
2.输出
2.1文本输出
R语言的输出函数cat,sink,writeLines,write.table
2.1.1cat
cat(… , file = “”, sep = " ", fill = FALSE, labels = NULL,append = FALSE)
2.1.2 sink
sink(file = NULL, append = FALSE, type = c(“output”, “message”),split = FALSE)
2.1.3 writeLines
writeLines(text, con = stdout(), sep = “\n”, useBytes = FALSE)
2.1.4 write.table()
write.table(x, file = “”, append = FALSE, quote = TRUE, sep = " ",eol = “\n”, na = “NA”, dec = “.”, row.names = TRUE,col.names = TRUE, qmethod = c(“escape”, “double”),fileEncoding = “”)
2.1.5 write.csv
write.csv(act_4,‘act_4.csv’,row.names = F)
row.names = T系统都会自动生成一个数值顺序编号的标题列(第一列)当为false时即不生成此标题列
2.2图形输出
批处理
Linux或MacOSX系统下:
R CMD BATCH options infile outfile
infile是包含了要执行的R代码所在文件的文件名,outfile是接收输出文件的文件名,options部分则列出了控制执行细节的选项,infile的扩展名是.R,outfile的扩展名为.Rout。
Windows下:
R特色功能
1.结果的重用1.6
2.处理大数据集1.7
包
search()列举哪些包已加载
包的安装和更新
包的载入
包的使用方法
help(package=“package_name”)
数据集
数据结构
向量
1.存储一维数组,借用C()
可以存储数值型,字符型,逻辑型一维数组
data <-c(2,3,5)
2.通过方括号可以访问元素所在的位置
data[c(1.3)]用于访问向量data中的第1个和第3个元素
3.使用的冒号用于生成一个数值序列。例如,a<-c(2:6)等价于a<-c(2,3,4,5,6)。
标量
只含有一个元素的向量
f <-3
矩阵
vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况下按列填充
myymatrix <-matrix(vector,nrow,ncol,byrow,dimnames=list(char_vector_rowname,char_vector_colnames))```
数组
myarray <-array(vector,dimensions,dimnames)
其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。
创建一个数组
> dim1 <-c("A1","A2")
> dim1 <-c("A1","A2")
> dim1 <-c("A1","A2")
> dim2 <-c("B1","B2","B3")
> dim3 <-c("c1","c2","c3","c4")
> z <-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))
> z
, , c1
B1 B2 B3
A1 1 3 5
A2 2 4 6
, , c2
B1 B2 B3
A1 7 9 11
A2 8 10 12
, , c3
B1 B2 B3
A1 13 15 17
A2 14 16 18
, , c4
B1 B2 B3
A1 19 21 23
A2 20 22 24
数据框
每一列数据的模式必须唯一
创建一个简单的数据框
> user_id <-c(11,22,33)
> age<-c(52,66,45)
> user_type <-c("apple","banana","pear")
> produce <-data.frame(user_id,age,user_type)
> produce
user_id age user_type
1 11 52 apple
2 22 66 banana
3 33 45 pear
>
选取数据框中的元素
1.选取前几列
> produce [1:2]
user_id age
1 11 52
2 22 66
3 33 45
2.指定列名选取
> produce[c("user_id","age")]
user_id age
1 11 52
2 22 66
3 33 45
3.选取特定变量$
> produce$age
[1] 52 66 45
可以用此功能实现生成相对应的列联表
> table(produce$user_id,produce$age)
45 52 66
11 0 1 0
22 0 0 1
33 1 0 0
但是每个变量前面都要加上数据框名字太繁琐,有以下简化方法
上函数!
attach( )
可以将数据框直接加到数据搜索路径中,当遇到变量时会直接搜索数据框
detach ( )
将数据搜索路径中数据框移除
> attach(produce)
The following objects are masked _by_ .GlobalEnv: age, user_id, user_type
> summary(age)
Min. 1st Qu. Median Mean 3rd Qu. Max.
45.00 48.50 52.00 54.33 59.00 66.00
> plot(user_id,age)
> detach(produce)
代码在执行时提示:
The following objects are masked by .GlobalEnv: age, user_id, user_type
多个对象同名,原始对象有优先权,所以任何情况下,都要当心那些告知某个对象已被屏蔽(masked)的警告。
with ( )
上述两个有点烦,