1. 程式人生 > >R語言︱基本函式、統計量、常用操作函式

R語言︱基本函式、統計量、常用操作函式

先言:R語言常用介面操作

幫助:help(nnet) = ?nnet =??nnet 清除命令框中所有顯示內容:Ctrl+L 清除R空間中記憶體變數:rm(list=ls())、gc() 獲取或者設定當前工作目錄:getwd、setwd 儲存指定檔案或者從磁碟中讀取出來:save、load 讀入、讀出檔案:read.table、wirte.table、read.csv、write.csv

1、一些簡單的基本統計量

#基本統計量
sum/mean/sd/min    #一些基本統計量

which.min()        #找出最小值的序號

以上是單數列,如果是多變數下的呢?

#多元資料
colMeans()    #每列,row是行(橫向)
colnames()    #列名
colSums()     #列求和
cov()         #協方差陣
cor()         #相關矩陣
cor.test()    #相關係數

abs 絕對值
sqrt 平方根
exp e^x次方
log 自然對數
log2,log10 其他對數
sin,cos,tan 三角函式
sinh,cosh,tanh 雙曲函式
poly 正交多項式
polyroot 多項式求根

物件操作:

assign 賦值操作,等同於“<-”
rm 刪除物件
ls 顯示記憶體中的物件
str 顯示物件的內在屬性或簡要說明物件
ls.str 展示記憶體中所有物件的詳細資訊
length 返回物件中元素的個數
names 顯示資料的名稱,對於資料框則是列名字
levels 因子向量的水平
dim 資料的維度
nrow 矩陣或資料框的行數
ncol 列數
rownames 資料的行名字
colnames 列名字
class 資料型別
mode 資料模式
head 資料的前n行
tail 資料的後n行
summary 顯示物件的概要
attr x的屬性型別
is.na 檢測變數的型別
is.null
is.array
is.data.frame
is.numeric
is.complex
is.character

簡單統計:

max 最大元素
min 最小元素
range 最小值和最大值組成的向量
sum
prod 元素連乘
pmax 向量間相同下標進行比較最大者,並組成新的向量
pmin 向量間相同下標進行比較最小者,並組成新的向量
cumsum 累積求和
cumprod 連乘
cummax 最大
cummin 最小
mean 均值
weighted,mean 加權平均數
median 中位數
sd 標準差
norm 正態分佈
f F分佈
unif 均勻分佈
cauchy 柯西分佈
binom 二項分佈
geom 幾何分佈
chisq.test 卡方檢驗,進行獨立性檢驗
prop.test 對總體均值進行假設檢驗
shapiro.test 正態分佈檢驗
t.test T檢驗,對總體均值進行區間估計
aov 方差分析
anova 一個或多個模型物件的方差分析

2、向量

向量在迴圈語句中較為廣泛

#向量
#向量在迴圈語句中較為廣泛
M=vector(length = 8);M  #生成一個長為8的布林向量
M[1]="1";M             #賦值之後就會定義為字元
M[1]=1;M              #賦值之後,定義為數值

邏輯向量使用

y[y < 0] <- -y[y < 0]      #表示將向量(-y)中 與向量y的負元素對應位置的元素 賦值給 向量y中 與向量y負元素對應的元素。作用相當於: y <- abs(y)


3、資料儲存形式

#資料儲存形式
data.frame(wi=iris,ci=cars)   #資料框形式,可以直接定義變數名
list(wi=iris,ci=cars)         #list,也可以直接定義變數名

注意:attach()、detach()

可以將資料框中的變數釋放到Rs記憶體中,然後就可以直接呼叫。

attach(iris)
names(setosa)   
detach(iris)

在data.frame中,是可以實現資料集重新命名的,比如data.frame(x=iris,y=cars),

也可以實現橫向、縱向重新命名,data.frame(x=iris,y=cars,row.names=iris)


4、資料檢視函式——names、str、unique組合、typeof()、mode()、class()

##資料檢視函式
names(iris)           #檢視所有變數名字
str(iris)             #變數屬性(int整數,num數值)
unique(iris$setosa)   #檢視分類變數的水平
table(iris$setosa)    #分類水平,不同水平的個數(=unique+sum功能)
summary(iris)         #所有變數各自的均值、分位數、眾數、最大、最小值等統計量,在迴歸中就是係數表等
attributes(iris)      #包括names(變數名)、row.names(序號的名稱)、class(資料形式)

一般names、str、unique會組合使用。

如何檢視資料型別——typeof()、mode()、class()的區別?

[plain] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. 我這裡用個因子例子來說明,希望能講清楚  
  2. > gl(2,5)            #新建一個因子  
  3. [1] 1 1 1 1 1 2 2 2 2 2  
  4. Levels: 1 2  
  5. > class(gl(2,5))   #檢視變數的類,顯示為因子;  
  6. [1] "factor"  
  7. > mode(gl(2,5))     #檢視資料大類,顯示為數值型;  
  8. [1] "numeric"  
  9. > typeof(gl(2,5))    #檢視資料細類,顯示為整數型;  
  10. [1] "integer"  
  11. #來自:http://f.dataguru.cn/thread-99785-1-1.html  
從精細度上說,typeof>mode>class. 

5、矩陣的基本知識與注意

#矩陣的基本知識
t()       #轉置
det()     #行列式,方陣
x%*%y     #向量內積
x%o%y#向量外積


A=array(1:9,dim=c(3,3))
A*A    #這個代表矩陣內兩兩子元素相乘
A%*%A #才是我們想要的結果
crossprod(A,A)    #等於t(A)%*%A
crossprod(t(A),A) #等於A%*%A,所以需要t(A)一下
t 矩陣轉置
rowsum 行求和
colsum 列求和
rowmeans 行平均
colmeans 列平均
solve 對線性方程求解或求矩陣的逆
diag 對角陣

6、因子

##因子(≈文字+數字的組合)
#SPSS中值標籤定義有異曲同工之妙
M=factor(iris$setosa,levels=c(1,0),labels=c("M","F"));M  #能夠轉化因子格式+定義值標籤
M=as.factor(iris$setosa);M #上面的函式更有效,因為as.factor只能轉化成因子格式

7、輸入輸出

library 載入包
data 載入制定資料集
load 載入save或者save.image儲存的資料
read.table 讀取表格
read.csv 讀取以逗號分割的表格
read.delim 讀取以tab分割個表格
read.fwf 以fixed width formatted 形式讀取資料至表格
save 二進位制儲存指定物件
save.image 二進位制儲存當前執行緒內所有物件
write.table 將資料以表格形式寫入文字
write.csv 將資料以CSV表格形式寫入文字
cat 強制轉化為字元後輸出
sink 輸出轉向到指定檔案
print 輸出螢幕
format 格式化

8、邏輯運算

!x 邏輯非
x & y 邏輯與
x && y 邏輯與(僅匹配並返回第一個值)
x | y 邏輯或
x || y 邏輯或(僅返回第一個值)
x or (x,y) 異或