先言: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()的區別?
- 我這里用個因子例子來說明,希望能講清楚
- > gl(2,5) #新建一個因子
- [1] 1 1 1 1 1 2 2 2 2 2
- Levels: 1 2
- > class(gl(2,5)) #查看變量的類,顯示為因子;
- [1] "factor"
- > mode(gl(2,5)) #查看數據大類,顯示為數值型;
- [1] "numeric"
- > typeof(gl(2,5)) #查看數據細類,顯示為整數型;
- [1] "integer"
- #來自: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 | 輸出轉向到指定文件 |
| 輸出屏幕 | |
| format | 格式化 |
8、邏輯運算
| !x | 邏輯非 |
| x & y | 邏輯與 |
| x && y | 邏輯與(僅匹配並返回第一個值) |
| x | y | 邏輯或 |
| x || y | 邏輯或(僅返回第一個值) |
| x or (x,y) | 異或 |
