R
操作數據框的時候,在每個變量名前都鍵入一次數據框名稱(eg: dataframe) dataframe$ 可能會讓人生厭,所以不妨走一些捷徑。可以聯合使用函數attach()和detach()函數或單獨使用with()函數來簡化代碼。
- attach() 和 detach()
attach() 可將數據框添加到R的搜索路徑中。
eg: 有一個數據框dataframe有兩列,一列名爲name,第二列名爲age
summary(dataframe$age)
plot(dataframe$name,dataframe$age)
可簡化代碼爲:
attach(dataframe)
summary(age)
plot(name,age)
detach(dataframe)
函數detach()將數據框從搜索路徑中移除,值得注意的是,detach()並不會對數據框本身做任何處理。這句可以省略的,但其實它應當被例行的放入代碼中,因爲這是一個好的編程習慣。
當名稱相同的對象不止一個時,這種方法的侷限性就非常明顯。即:在數據框被綁定前,若環境中已經有一個與列名同名的對象,在這種情況下,原始對象將取得優先權。任何情況下,都要當心那些告知你某個對象已被屏蔽(masked)的警告。
使用with()函數可取代attach()和detach()兩個函數
with(dataframe,{
summary(age)
plot(name,age)
})
with()函數的侷限性在於,賦值僅僅在此函數括號內生效,爲了避免,可使用如下代碼:
with(dataframe,{
summary <<-summary(age)
plot <<- plot(name,age)
})
- R中基本的數學函數
abs() 取絕對值
sqrt() 平方根,與x^(0.5)等價
ceiling() 不小於x的最小整數
floor() 不大於x的最大整數
trunc() 向0的方向截取的x中的整數部分
round(x,digits=n) 將x舍入爲指定位的小數
signif(x,digits=n) 將x舍入爲指定的有效數字位數
log(x) 自然對數
log10(x) 常用對數
log(x,base=n) 對x取n爲底的對數
exp(x) 指數函數
- R中常用統計函數
mean(x) 平均數
median(x) 中位數
sd(x) 標準差
var(x) 方差
quantile(x,probs) 求中位數 eg. quantile(x,c(.3,.84)) #求x的30%和84%分位點
scale(x,center=TRUE,scale=TRUE) 爲數據對象x按列進行中心化(center=TRUE)或標準化(center=TRUE,scale=TRUE)
-R中常用字符處理函數
nchar(x) 計算x中的字符數量
substr(x,start,stop) 提取或者替換一個字符向量的子串
grep(pattern, x , ignore.case = FALSE , fixed=FALSE) 在x中搜索某種模式。若fixed=FALSE,則pattern爲一個正則表達式,若fixed=TRUE,則pattern爲一個文本字符串。返回值爲匹配的下標
sub(pattern , replacement , x , ignore.case=FALSE , fixed=FALSE) 在x中搜索pattern,並以文本replacement將其替換,若fixed=FALSE,則pattern爲一個正則表達式。若fixed=TRUE,則pattern爲一個文本字符串
eg. sub("\\s",".","Hello There") 返回值爲Hello.There #注意,"\s" 是一個用來查找空白的正則表達式,使用"\\s"而不是"\"的原因是,後者是R中的轉義字符
strsplit(x,split,fixed=FALSE) 在split處分割字符向量x中的元素,若fixed=FALSE,則pattern爲一個正則表達式。若fixed=TRUE,則pattern爲一個文本字符串
eg. y <- strsplit("abc",'') 將返回一個含有一個成分、三個元素的列表,包含的內容爲"a","b","c" ##對付這樣的list,取其元素最簡單的辦法 unlist(y)[2]
paste("x1","x2",...,sep='')
eg. paste("Today is",date()) 返回值爲“Today is Thu Jun 25 14:17:32 2011”
toupper(x) 大寫轉換
tolower(x) 小寫轉換
- R其他函數
length(x) 對象x的長度
seq(from,to,by) 生成一個序列
rep(x,n) 將x重複n次
cut(x,n) 將連續變量x分割爲有着n個水平的因子,使用選項ordered_result=TRUE以創建一個有序型因子
pretty(x,n) 創建美觀的分割點。通過選取n+1個等艱鉅的取整值,將一個連續型變量x分割爲n個區間,繪圖中常用。
cat(...,file="myfile",append=FALSE) 連接...中的對象,並將其輸出到屏幕上或文件中(如果聲明瞭一個的話) eg. firstname <- c("Jane") cat("Hello",firstname,"\n")