在r語言中,有些函式由於名字相似,或者功能相似,容易混淆。因此,我計畫記錄一些在r中易混淆的函式,相應的文章題目都是冠以易混淆函式札記。這是這個系列的第一篇文章。
這篇文章中用的資料集是r中自帶的mtcars資料集,可以直接呼叫。由於該資料集列數較多,為了方便理解,我們只取其mpg
,cyl
,hp
列,分別表示汽車每加侖汽油跑的里程(單位mile)、氣缸數、汽車馬力。並將這些列賦值給cars
變數
> cars
> head(cars) # 使用head函式檢視前幾行資料
mpg cyl hp
mazda rx4 21.0 6 110
mazda rx4 wag 21.0 6 110
datsun 710 22.8 4 93
hornet 4 drive 21.4 6 110
hornet sportabout 18.7 8 175
valiant 18.1 6 105
除非特別指出,否則後面的函式都是針對的cars變數的資料。
下面逐個介紹這些函式。
引數解釋
x: 待分析的資料(dataframe格式)
margin: 可選擇兩個引數值1和2。其中,1 表示為對行進行應用,2表示對列進行應用,c(1,2)則表示既對行又對列進行應用
fun: 要應用的函式
比如我要對每列求標準差(r 中 內建了sd
函式),並將結果賦值給colsd
# 結果
> colsd
mpg cyl hp
6.026948 1.785922 68.562868
例如我想將所有資料都減去2然後除以10,並將結果賦值給change函式
引數解釋
> $mpg
[1] 1.90 1.90 2.08 1.94 1.67 1.61 1.23 2.24 2.08 1.72 1.58 1.44
[13] 1.53 1.32 0.84 0.84 1.27 3.04 2.84 3.19 1.95 1.35 1.32 1.13
[25] 1.72 2.53 2.40 2.84 1.38 1.77 1.30 1.94
$cyl
[1] 0.4 0.4 0.2 0.4 0.6 0.4 0.6 0.2 0.2 0.4 0.4 0.6 0.6 0.6 0.6
[16] 0.6 0.6 0.2 0.2 0.2 0.2 0.6 0.6 0.6 0.6 0.2 0.2 0.2 0.6 0.4
[31] 0.6 0.2
$hp [1] 10.8 10.8 9.1 10.8 17.3 10.3 24.3 6.0 9.3 12.1 12.1 17.8
[13] 17.8 17.8 20.3 21.3 22.8 6.4 5.0 6.3 9.5 14.8 14.8 24.3
[25] 17.3 6.4 8.9 11.1 26.2 17.3 33.3 10.7
# 結果
> head(change)
$mpg
[1] 1.90 1.90 2.08 1.94 1.67 1.61 1.23 2.24 2.08 1.72 1.58 1.44
[13] 1.53 1.32 0.84 0.84 1.27 3.04 2.84 3.19 1.95 1.35 1.32 1.13
[25] 1.72 2.53 2.40 2.84 1.38 1.77 1.30 1.94
$disp
[1] 15.80 15.80 10.60 25.60 35.80 22.30 35.80 14.47 13.88 16.56
[11] 16.56 27.38 27.38 27.38 47.00 45.80 43.80 7.67 7.37 6.91
[21] 11.81 31.60 30.20 34.80 39.80 7.70 11.83 9.31 34.90 14.30
[31] 29.90 11.90
$hp [1] 10.8 10.8 9.1 10.8 17.3 10.3 24.3 6.0 9.3 12.1 12.1 17.8
[13] 17.8 17.8 20.3 21.3 22.8 6.4 5.0 6.3 9.5 14.8 14.8 24.3
[25] 17.3 6.4 8.9 11.1 26.2 17.3 33.3 10.7
從結果可以看到,返回的是乙個向量,如果我們只是想得到資料,修改列資料,可以使用這個函式,否則使用transform
函式。
as.data.frame(change)
> head(change)
mpg cyl hp
[1,] 1.90 0.4 10.8
[2,] 1.90 0.4 10.8
[3,] 2.08 0.2 9.1
[4,] 1.94 0.4 10.8
[5,] 1.67 0.6 17.3
[6,] 1.61 0.4 10.3
有時候我們想對資料按照一定的標準分組,其中標準是某一列的不同水平值,然後對每組資料進行處理。這個和sql中的group by很像。
引數解釋,x,fun函式同上
index 是分類標準所在的列名
注意這裡x和index長度相等
例如我們想將具有相同的氣缸數的汽車的合併在一起,並得到其mpg的平均值(r中的mean
函式),並賦值給block變數
# 結果
> block
4 6 8
26.66364 19.74286 15.10000
說明:
基礎補習 PHP易混淆函式的區分
今天看到毛毛蟲給大家做了個空字串和null的區分 感覺對基礎知識不紮實的小鳥 比如我 很有幫助,夜深了,一時來興致,查了很多 權威資料 寫一篇文章貼到這裡和大家一起補習一下基礎知識,當然,我的標題寫的並不嚴謹,內容也只是個人的總結,不足之處請高手多補充,話不多說,正文如下 1.echo和print的...
基礎補習 PHP易混淆函式的區分
今天看到毛毛蟲給大家做了個空字串和null的區分 感覺對基礎知識不紮實的小鳥 比如我 很有幫助,夜深了,一時來興致,查了很多 權威資料 寫一篇文章貼到這裡和大家一起補習一下基礎知識,當然,我的標題寫的並不嚴謹,內容也只是個人的總結,不足之處請高手多補充,話不多說,正文如下 1.echo和print的...
易混淆的幾個概念
不知道行不行,大家看下,指點下 謝謝額 1.抽象方法與介面 第乙個還沒寫,那個寫一下貼上來 2.多型與繼承 3.委託類及說明委託 匿名委託 4.反射的方法訪問另乙個類的方法。一 開發oa系統中有公文流轉流程,其中在公文流轉中有公文審核,公文審核是按級審核的,比如發文單位主管審核後,經理要審核,經理審...