R的資料操作基礎 三 整合 重鑄 控制流

2021-10-24 08:20:21 字數 2274 閱讀 2367

r中有很多整合資料的方法,最簡單的比如用t()對資料框進行轉置。稍微複雜的是使用aggreate函式:

aggreate(data,by,fun)
x是資料集,by是變數,fun是函式,比如我們對mtcars資料集進行這樣的操作,fun使用均值函式mean。

attach(mtcars)

agg <- aggregate(mtcars,by=list(cyl,gear)

,fun=mean,na.rm=t)

> agg

group.1 group.2 mpg cyl disp hp drat wt qsec vs am gear carb14

321.5

4120

973.70

2.46

20.0

1.00.00

31.0026

319.8

6242

1082.92

3.34

19.8

1.00.00

31.0038

315.1

8358

1943.12

4.10

17.1

0.00.00

33.0844

426.9

4103

764.11

2.38

19.6

1.00.75

41.5056

419.8

6164

1163.91

3.09

17.7

0.50.50

44.0064

528.2

4108

1024.10

1.83

16.8

0.51.00

52.0076

519.7

6145

1753.62

2.77

15.5

0.01.00

56.0088

515.4

8326

3003.88

3.37

14.6

0.01.00

56.00

在這個輸出中,比如第一行意為mpg=4,gear=3的車輛,它們各項引數的均值,下面各組以此類推。

使用reshape2包中的melt函式可以將原始資料集進行融合。比如考慮這樣的乙個資料集:

> data

data

x1 x2 x3 x4[1

,]12

85[2

,]15

82[3

,]13

64[4

,]212

31

我們可以通過melt函式新增一列變數列,這樣便於我們後續的操作:

melt(data)

var1 var2 value

11 x1 1

22 x1 1

33 x1 1

44 x1 2

51 x2 2

62 x2 5

73 x2 3

84 x2 12

91 x3 8

102 x3 8

113 x3 6

124 x3 3

131 x4 5

142 x4 2

153 x4 4

164 x4 1

可以看見var2就是識別符號。

此外,我們還可以通過dcast()讀取已經綜合的資料,並且進行重鑄,這裡不再敘述。

所謂控制流就是迴圈和條件執行,下面列出了最常見的控制流

x <- c(3,

5,1)

for(i in x)

print(switch(i,

"1"=

"monday"

,"2"

="tuesday"

,"3"

="wednesday"

,"4"

="thursday"

,"5"

="friday"))

}[1]

"wednesday"[1

]"friday"[1

]"monday"

最後,通過控制流和其它函式,我們就可以自編一些函式進行資料操作了,這些在實用中會出現千奇百怪的要求,需要分門別類地處理。

PHP框架Yii系列教程(三) 整合Redis

wget tar xzf redis 2.6.12.tar.gz cd redis 2.6.12 make 進入redis 2.6.12目錄,修改redis.conf daemonize yes 啟動服務端 src redis server redis.conf 進入命令列驗證服務是否啟動 src ...

SpringMVC系列之三 整合Log4j

url 系列之 一 整合jsp url url 系列之 二 整合freemarker url springmvc系列之 三 整合log4j 在 url 系列之 二 整合freemarker url 基礎上,1.往pom.xml檔案新增log4j依賴 1.7.5 org.slf4j slf4j log...

電子技術基礎 三 整合運算放大器及其應用

積體電路按功能分為 模擬積體電路和數字積體電路。模擬積體電路的種類很多,包括整合運算放大器 整合穩壓器 集成功率放大器 整合模擬乘法器以及各種專用積體電路。它是用來產生 放大 處理各種模擬訊號的積體電路。一.在各種模擬積體電路中,整合運算放大器是應用最為廣泛的器件。整合運算放大器 簡稱 整合運放 整...