R 是?個免費的用于統(tǒng)計計算的軟件。在R中可以直接輸入語句锦募,讓R返回計算結(jié)果摆屯;也可以把命令語句存儲到?件中,有需要時再調(diào)用糠亩。
#調(diào)用命令?件:
source('XXXX')
R有?個默認(rèn)路徑虐骑,以文件作為參數(shù)時如果沒有帶上路徑的話准验,就會默認(rèn)從這個路徑下存取。如果不使用默認(rèn)路徑存儲廷没,又不想要每次都輸入長長的路徑名的話糊饱,可以修改存取路徑,這樣之后會默認(rèn)在這個路徑下存取文件颠黎。
#修改存取路徑
setwd('XXXXXXXX')
R可以讀?許多不同格式的?件另锋,包括.txt,.dat狭归,.csv砰蠢,.sav等。
#讀入txt
read.table('XXX.txt', header = TRUE)
#讀入SPSS文件
library(foreign)
data = read.spss('XXX.sav',to.data.frame=TRUE)
#如果read.spss遇到問題唉铜,可以使用:
library(memisc)
data = as.data.set(spss.system.file('XXX.sav'))
#讀入csv文件
data = read.csv('XXX.csv')
R中有豐富的程序包台舱,可以通過安裝和調(diào)用程序包來使用其中的函數(shù)。
#安裝程序包
install.packages('XXXX')
#調(diào)用程序包
library(XXXX)
R中的函數(shù)都有說明文檔潭流,會給出函數(shù)包含的所有參數(shù)竞惋、每個參數(shù)的解釋、函數(shù)返回的內(nèi)容及其解釋灰嫉、參考?獻(xiàn)和示例拆宛。可以通過輸入讼撒?+函數(shù)名或者使用help()函數(shù)來查閱說明文檔浑厚。
? rnorm
help(rnorm)
help(lda,package = 'MASS')
矩陣(matrix):矩陣是一個二維的數(shù)組(array,一維的數(shù)組是向量)根盒,每列需要是相同的數(shù)據(jù)類型钳幅。
#用函數(shù)c()可以創(chuàng)建一個向量
v = c(11,22,22,33)
#用函數(shù)matrix()可以創(chuàng)建一個矩陣(默認(rèn)按列排序)
m = matrix(c(22,33,23,23),nrow = 2,ncol=2)
#想要按行排序的話
m = matrix(c(125, 160, 183, 137),nrow = 2,ncol=2,byrow = TRUE)
#定義空矩陣
m = matrix(NA, nrow =3 , ncol=2 )
對向量、矩陣進(jìn)行四則運算的時候炎滞,是分別對其中的每個元素進(jìn)行的敢艰。
#返回向量的長度
length(v)
#返回矩陣的維度
dim(m)
#返回矩陣的某行某列
m[1,]#第一行
m[,2]#第二列
m[1,2]#第一行第二列
常用的生成向量或矩陣的命令:
|命令|解釋|
|--||
|rep(ns,b)|ns 是數(shù)列;b 如果是數(shù)值册赛,則重復(fù)ns b 次钠导,如果b 是數(shù)列(長度需與ns 相同),那么ns 中的每個元素重復(fù)b 中相應(yīng)位置的元素的次數(shù)|
|seq(low,up,by=sep)|生成等差數(shù)列森瘪,low 是首項牡属,up 是末項,sep 為公差|
|low:up|形成公差為1 的等差數(shù)列扼睬,low 是起點逮栅,up 是終點|
|sample(ns,n)|隨機抽樣,從ns 中隨機抽取樣本量為n 的樣本|
數(shù)據(jù)框(dataframe):數(shù)據(jù)框是另一種集合數(shù)據(jù)的形式,每列代表一個變量证芭,不同列的數(shù)據(jù)類型不必相同瞳浦。數(shù)據(jù)框與矩陣非常相似,僅在某些函數(shù)或運算中跟矩陣有所不同废士〗辛剩可以使用as.data.frame() 或as.matrix() 進(jìn)行轉(zhuǎn)換。
#定義數(shù)據(jù)框
d = data.frame(x = 1, y = 1:10, z = sample(1:20,10))
#按條件讀取數(shù)據(jù)框中的數(shù)據(jù)
pd = subset(d,z<10)
#把數(shù)據(jù)框中的變量變?yōu)楠毩⒆兞?attach(d)
#訪問數(shù)據(jù)框中的數(shù)據(jù)
d[[,1]]
d[["x"]]
d$x
列表(list):當(dāng)不同列的數(shù)據(jù)長度不?致的時候官硝,就需要使用列表存儲數(shù)據(jù)矗蕊。每個元素的類型可以不同,元素本身可以允許是更復(fù)雜的數(shù)據(jù)類型氢架,甚至可以是一個列表傻咖。
#定義列表
s = list(a = 1, b=1:3, c=sample(1:100,10))
#返回列表中的某個元素
s[[,3]]
s[["c"]]
s$c
#返回列表的某一部分(類型仍為列表)
s[,3]
#返回某個元素的某個值
s[[,3]][2]
描述性統(tǒng)計常用函數(shù)
命令 | 解釋 |
---|---|
summary(x) | 返回數(shù)據(jù)或變量的五數(shù)概括+均值 |
table(x) | 返回分類變量各個取值的頻數(shù) |
mean(x);sd(x) | 求變量x 的均值或標(biāo)準(zhǔn)差 |
quantile(x) | 返回變量的常用的百分位數(shù) |
cor(x);cov(x) | 計算矩陣的相關(guān)或協(xié)?差;cor(x,y)則返回x和y的相關(guān)系數(shù) |
作圖常用函數(shù)
命令 | 解釋 |
---|---|
barplot(x) | 條形圖岖研;x 是向量或者矩陣 |
boxplot(x) | 箱圖卿操;x 是向量或者矩陣 |
hist(x) | 直?圖;x 是向量 |
plot(x,y) | 散點圖 |
abline(a=,b=) | 在原有圖上疊加?條直線:截距為a孙援,斜率為b |
abline(v=) | 在原有圖上疊加?條直線:x = v |
abline(h=) | 在原有圖上疊加?條直線:y = h |