R语言学习笔记 (入门知识)

R免费使用;统计工具;
# 注释,行注释
块注释:anything="这是注释的内容"
常用R语言编辑器:Rsutdio,Tinn-R,Eclipse+StatET;中文会有乱码
帮助:?,help; ?boxplot, help(boxplot),help("[[")
运行R文件:source('abc.R')
加载包:library(ggplot2)
安装包:install.packages()
退出R:q()
设置工作目录:setwd("E:\\XXX\\yyy\\")
清空内存:rm(list=ls(all=TRUE))
对数:log自然对数;log10;
标量;
赋值:<-,=
变量取名可以用.
c() 向量; Win[1], Win[1:5], Win[-2],下标从1开始
c()可以连接多个标量;也可连接多个向量;
NA
变量取名大写字母开头
na.rm=TRUE
rep(); rep(1:4, each=8)
seq(); seq(from=1,to=4,by=1)
cbind()
rbind()
matrix(); matrix(nrow=8,ncol=4); Z[,1], Z[1:8,1], Z[2,], Z[,-3], Z[,c(1,3,4)]
dim(Z)
nrow(); ncol();
vector(length=8)
colnames()
rownames()
as.matrix;as.data.frame,is.matrix, is.data.frame,
t()
XX<-data.frame(AA=AA,BB=BB); XX$AA; XX[,1];
str()
names()
list(X1=x1,X2=x2)
is.na()
!is.na()
read.table() 生成了数据框
scan() 数值型比较快
write.table() #可以用于保存向量,矩阵,data.frame.
factor
attach(); detach();
unique()
筛选子集: Sel<-Squid$Sex==1; SquidM<-Squid[Sel,]; Squid[Squid$Sex==1,];
|, &, !=, ==
order()  # To sort a data frame in R, use the order( ) function.

对向量排序: sort(x, decreasing = FALSE, ...)
merge()
as.factor(); as.numeric(); as.character();
factor(Squid$Sex, levels=c(1,2), labels=c("M","F"))
tapply(); tapply(X=Veg$R,INDEX=Veg$Transect, FUN=mean) 根据第二个变量的不同水平对第一个变量进行求平均值运算;
mean,min,max,sd,length,
lapply() 多个变量;输出list;lapply(x,FUN=mean)
sapply() 多个变量;输出vector; sapply(x,FUN=mean)
summary() 输出最小值,第一个四分位数,中位数,平均值,第三个四分位数,最大值;
table() 计算列联表;一个变量或两个变量;
plot(); plot(x=XXX,y=YYY); plot(y~x,data=Veg);
plot(x=,y=,xlab=,ylab=,main=,xlim=,ylim=),pch=1..25;
warnings()
col 颜色; cel 尺寸;cex尺寸;
lines()划线; loess()loess平滑;fitted()拟合值;
lwd线宽度,lty线类型;
jpeg(file="xxxx.jpg"); dev.off();
paste(); paste0();

for(i in 1:27) {}
for(var in seq) expr
while(cond) expr
repeat expr
break
next

if(cond) expr
if(cond) cons.expr  else  alt.expr

 

ifelse(choice=="Zeros",expr1,expr2);

自定义函数
function_name<-function(params){
do something
expr -- return values;
}

colSums(); rowSums();
函数参数默认值
function_name<-function(params, xxx="YYY"){
do something
expr -- return values;
}


《R语言初学者指南》
ls(); ls(pat = "m");ls(pat = "^m")
help("bs", try.all.packages = TRUE);  help("bs", package = "splines")
help.search("tree", rebuild = TRUE))
对象的类型和长度可以分别通过函数mode和length得到
\", \'
函数scan比read.table要更加灵活,它们的区别之一是前者可以指定变量的类型
mydata <- scan("data.dat", what = list("", 0, 0)) 读取了文件data.dat中三个变量,第一个是字符型变量,后两个是数值
型变量。
函数read.fwf可以用来读取文件中一些固定宽度格式的数据
若想用更简单的方法将一个对象写入文件,可以使用命令write(x,file ="data.txt"),其中x是对象的名字(它可以是向量,矩阵,或者数
组)
要记录一组任意数据类型的对象,我们可以使用命令save(x, y, z,file= "xyz.RData")。
数据(用R的术语来说叫做工作空间)可以在使用load("xyz.RData")之后被加载到内存中。
键盘输入一些数据也是可以的,只需要直接使用默认选项的scan函数:
函数sequence创建一系列连续的整数序列,每个序列都以给定参数的数值结尾
函数gl(生成不同的水平/层次数据)
expand.grid()创建一个数据框
 
数学运算 比较运算 逻辑运算
+ 加法 < 小于 ! x 逻辑非
- 减法 > 大于 x & y 逻辑与
* 乘法 <= 小于或等于 x && y 同上
/ 除法 >= 大于或等于 x j y 逻辑或
^ 乘方 == 等于 x jj y 同上
%% 模 != 不等于 xor(x, y) 异或
%/% 整除

 identical和all.equal
如果X是一个矩阵,命令data.entry(X)将打开一个图形编辑器并且可以通过点击适当的单元格修改数值或者添加新的行或列

;