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)將打開一個圖形編輯器並且可以通過點擊適當的單元格修改數值或者添加新的行或列