2020-05-30R語言 特殊函數

1攒磨、統(tǒng)計函數

函數 描述
mean() 平均數
median() 中位數
sd() 標準差
var() 方差
mad() 絕對中位差愕撰,即原數據減去中位數后得到的新數據的絕對值的中位數
quantile(x,probs) 求分位數躏尉,x為待求分位數的數值型向量酌泰,probs為一個由[0,1]之間的概率值組成的數值向量一死,eg: a<-quantile(x,c(.3,.84) 求x的30%和84%分為點
range() 值域钞诡,a<-c(1,2,3,4) 返回c(1,4)周伦,
sum() 求和
diff(x,lag=n) 滯后差分夕春,lag指定滯后幾項,默認1专挪,對于c(1,5,23,29)返回4,18,6
min() 最小值
max() 最大值
scale(x,center=TRUE,scale=TRUE) 為數據對象x按例進行中心化(center=TRUE)或標準化(center=TRUE,scale=TRUE)
sweep() 運算及志,變換
apply() 運算

scale() 對數據矩陣做中心化和標準化變換,將一組數進行處理寨腔,默認情況下是將一組數的每個數都減去這組數的平均值后再除以這組數的均方根

兩個參數速侈,

一個是 center=TRUE,默認的迫卢,是將一組數中每個數減去平均值倚搬,若為false,則不減平均值;
另一個 scale=TRUE:默認的乾蛤,是將一組數中每個數除以均方根

apply()把一個function作用到array或者matrix的margins(可以理解為數組的每一行或者每一列)中每界,返回值vector、array家卖、list

注意:使用apply之后眨层,返回都是一個向量,并不會因為apply計算行(列)的sum就會自動返回一個列(行)向量
eg:
apply(x, 2, max) - apply(x,2,min) #算出極差上荡,即列上的最大值-最小值

sweep(x, MARGIN, STATS, FUN="-", ...) 對矩陣進行運算

MARGIN為1趴樱,表示行的方向上進行運算,為2表示列的方向上運算
STATS是運算的參數 即變量酪捡?叁征?
FUN為運算函數,默認是減法
eg:
sweep(x, 2, apply(x, 2, mean)) #在列的方向上減去均值

極差正規(guī)化變換

center <- sweep(x, 2, apply(x, 2, min))
R <- apply(x, 2, max) - apply(x,2,min)
x_star <- sweep(center, 2, R, "/")
注意:均方差=標準差<>均方根逛薇,

均方差:

均方根:

2捺疼、數學函數

函數 描述
abs() 絕對值
sqrt() 平方根
ceiling() 向上取整
floor() 向下取整
trune() 向0的方向截取整數部分
round(x,digits=n) 將x舍入為指定的小數
signif(x,digits=n) 將x舍入為指定的有效數字位數
cos()、sin()金刁、tan() 三角函數
acos()帅涂、asin()、atan() 反三角函數
cosh()尤蛮、sinh()、tanh() 雙曲三角函數
acosh()斯议、asinh()产捞、atanh() 反雙曲三角函數
log(x,base=n) 對x取以n為底的對數
log(x) 自然對數,以e為底
log10(x) 常用對數哼御,以10為底
exp(x) 指數函數
3坯临、運算符

運算符 描述
< 小于
<= 小于等于

大于
= 大于等于
== 嚴格等于
!= 不等于
!x 非x
x|y x 或 y
x&y x 和 y
isTRUE(x) 測試x是否為TRUE
4焊唬、日期符號和函數

符號、函數 含義 示例
%d 數字表示的日期 01-31
%a 縮寫的星期 Mon
%A 非縮寫星期 Monday
%m 月份 00-12
%b 縮寫月份 Jan
%B 非縮寫月份 January
%y 兩位數的年份 18
%Y 四位數的月份 2018
as.Date(x, "input_format") 日期值通常以字符串的形式輸入到R中看靠,然后轉化為以數值形式存儲的日期變量赶促,input_format則給出了用于讀入日期的適當格式 見下
format(x,format="output_format") 輸出指定格式的日期值,還可以提取部分內容
as.character() 將日期值轉換為字符型

a<-as.Date(c("2018-3-4","2018-4-5")) ##字符串
a
[1] "2018-03-04" "2018-04-05" ##數值型
b<-c("08/08/2018","09/09/2018")
ans<-as.Date(b,"%m/%d/%Y")
ans
[1] "2018-08-08" "2018-09-09"

b<-c("08/08/2018","09/09/2018")
aa<-as.Date(b)
aa
[1] "0008-08-20" "0009-09-20" ##由結果可知挟炬,默認年月日~~~

as.Date(b) ##直接輸出結果
[1] "0008-08-20" "0009-09-20"
Sys.Date() ##當前日期

[1] "2018-08-23"

date() ##當前星期 月日 時間 年份
[1] "Thu Aug 23 18:42:16 2018"

today<-Sys.Date()
format(today,format="%B %d %y")
[1] "八月 23 18" ##中文版的R所以沒有輸出的不是8月的英語鸥滨??
format(today,format="%B%d%y")
[1] "八月2318"
format(today,format="%A")
[1] "星期四"
as.character(today)
[1] "2018-08-23"
as.Date(today)
[1] "2018-08-23"
5谤祖、函數na.omit()移除所有含有缺失值的觀測

6婿滓、table()函數

1)對應的就是統(tǒng)計學中的列聯(lián)表,是一種記錄頻數的方法粥喜,統(tǒng)計所有因子對出現(xiàn)的情況的頻數

s<-c(1,2,3,3,4,2,3,4,5,6)
z<-table(s)
z
s
1 2 3 4 5 6 ##元素
1 2 3 2 1 1 ##對應出現(xiàn)的頻數
summary(z)
Number of cases in table: 10

Number of factors: 1

names(z) ##提取元素
[1] "1" "2" "3" "4" "5" "6"
as.numeric(3,4) ##輸出指定頻數的元素凸主,若w<-names(z),as.numeric(w)即為所有元素
[1] 3
2)實現(xiàn)混淆矩陣

t<-table(c(1,0,1,1,1,0,0,1),c(0,0,1,1,1,0,1,1)) ##可理解第一個c為實際值,第二個為預測值
t

0 1

0 2 1
1 1 4 ## 對角線即為預測對的數量

(sum(diag(t))/sum(t) #預測對的數量除以總數據量

  • )
    [1] 0.75

sum(diag(t))/sum(t)
[1] 0.75
diag(t) ## 0猜對2個额湘,1猜對4個
0 1
2 4
7卿吐、aggregate函數

數據處理中常用到的函數,簡單說有點類似sql語言中的group by锋华,可以按照要求把數據分組聚合嗡官,然后對聚合以后的數據進行加和、求平均等各種

x=data.frame(name=c("張三","李四","王五","趙六"),

  • sex=c("M","M","F","F"),age=c(20,40,22,30),
  • height=c(166,170,150,155))

aggregate(x[,3:4],by=list(sex=x$sex),FUN=mean)
sex age height
1 F 26 152.5
2 M 30 168.0

注意:
? 字符或者factor類型的列不要一起加入計算供置,會報錯
? by參數要構造成list谨湘,如果有多個字段,by就對應隊列芥丧,和group by多個字段是同樣的道理
R語言 特殊函數

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末紧阔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子续担,更是在濱河造成了極大的恐慌擅耽,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件物遇,死亡現(xiàn)場離奇詭異乖仇,居然都是意外死亡,警方通過查閱死者的電腦和手機询兴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門乃沙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诗舰,你說我怎么就攤上這事警儒。” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵蜀铲,是天一觀的道長边琉。 經常有香客問我,道長记劝,這世上最難降的妖魔是什么变姨? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮厌丑,結果婚禮上定欧,老公的妹妹穿的比我還像新娘。我一直安慰自己蹄衷,他們只是感情好忧额,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著愧口,像睡著了一般睦番。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耍属,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天托嚣,我揣著相機與錄音,去河邊找鬼厚骗。 笑死示启,一個胖子當著我的面吹牛,可吹牛的內容都是我干的领舰。 我是一名探鬼主播夫嗓,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冲秽!你這毒婦竟也來了舍咖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤锉桑,失蹤者是張志新(化名)和其女友劉穎排霉,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體民轴,經...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡攻柠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了后裸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瑰钮。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖微驶,靈堂內的尸體忽然破棺而出飞涂,到底是詐尸還是另有隱情,我是刑警寧澤祈搜,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布较店,位于F島的核電站,受9級特大地震影響容燕,放射性物質發(fā)生泄漏梁呈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一蘸秘、第九天 我趴在偏房一處隱蔽的房頂上張望官卡。 院中可真熱鬧,春花似錦醋虏、人聲如沸寻咒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毛秘。三九已至,卻和暖如春阻课,著一層夾襖步出監(jiān)牢的瞬間叫挟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工限煞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抹恳,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓署驻,卻偏偏與公主長得像奋献,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子旺上,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內容