如何在 R 中從資料框建立 3D 陣列?
三維陣列是一個三維陣列,實際上是二維陣列的集合。我們可以使用 simplify2array 函式在 R 中從資料框建立三維陣列,此函式會將資料框分解為會形成三維陣列的陣列。
示例1
考慮以下資料框
> set.seed(254) > x<-sample(0:1,20,replace=TRUE) > y<-rpois(20,5) > z<-rpois(20,3) > a<-rpois(20,5) > b<-rpois(20,4) > c<-rpois(20,8) > df1<-data.frame(x,y,z,a,b,c) > df1
輸出
x y z a b c 1 0 4 6 9 5 5 2 0 5 1 4 2 1 3 0 6 1 4 5 6 4 1 6 3 5 4 12 5 1 9 8 6 6 11 6 1 8 2 6 2 7 7 0 4 4 6 4 4 8 1 6 2 4 3 4 9 0 5 0 3 4 9 10 0 2 2 4 3 7 11 1 6 1 5 5 7 12 1 8 1 2 4 9 13 0 3 3 4 4 11 14 1 7 3 2 6 11 15 1 8 2 6 4 15 16 0 7 1 5 2 12 17 1 6 1 2 5 7 18 1 6 6 3 2 10 19 1 7 1 5 2 5 20 1 4 2 6 2 6
從 df1 建立三維陣列
示例
> simplify2array(by(df1,df1$x,as.matrix)) df1$x: 0
輸出
x y z a b c 1 0 4 6 9 5 5 2 0 5 1 4 2 1 3 0 6 1 4 5 6 7 0 4 4 6 4 4 9 0 5 0 3 4 9 10 0 2 2 4 3 7 13 0 3 3 4 4 11 16 0 7 1 5 2 12
示例
df1$x: 1
輸出
x y z a b c 4 1 6 3 5 4 12 5 1 9 8 6 6 11 6 1 8 2 6 2 7 8 1 6 2 4 3 4 11 1 6 1 5 5 7 12 1 8 1 2 4 9 14 1 7 3 2 6 11 15 1 8 2 6 4 15 17 1 6 1 2 5 7 18 1 6 6 3 2 10 19 1 7 1 5 2 5 20 1 4 2 6 2 6
示例 2
> g1<-sample(1:4,20,replace=TRUE) > g2<-rnorm(20,1,0.3) > g3<-runif(20,1,2) > g4<-rpois(20,5) > df2<-data.frame(g1,g2,g3,g4) > df2
輸出
g1 g2 g3 g4 1 2 1.3239241 1.467573 6 2 1 0.7099436 1.881370 3 3 4 0.9902820 1.161732 11 4 4 0.7175320 1.814506 4 5 1 0.5081105 1.162827 7 6 2 1.4972085 1.847154 8 7 4 1.5698800 1.570466 11 8 3 0.6383917 1.471682 7 9 1 1.1184017 1.003588 5 10 4 0.4746240 1.243342 11 11 1 1.1368320 1.158829 7 12 4 1.4137269 1.289525 5 13 2 0.7776044 1.070726 7 14 4 1.3936072 1.313207 5 15 4 0.6832531 1.496392 3 16 2 0.9838087 1.807298 6 17 3 1.0371888 1.039574 9 18 4 1.7064870 1.517545 6 19 3 1.0512661 1.013286 4 20 1 1.0290387 1.899809 9
示例
> simplify2array(by(df2,df2$g1,as.matrix)) df2$g1: 1
輸出
g1 g2 g3 g4 2 1 0.7099436 1.881370 3 5 1 0.5081105 1.162827 7 9 1 1.1184017 1.003588 5 11 1 1.1368320 1.158829 7 20 1 1.0290387 1.899809 9
示例
df2$g1: 2
輸出
g1 g2 g3 g4 1 2 1.3239241 1.467573 6 6 2 1.4972085 1.847154 8 13 2 0.7776044 1.070726 7 16 2 0.9838087 1.807298 6
示例
df2$g1: 3
輸出
g1 g2 g3 g4 8 3 0.6383917 1.471682 7 17 3 1.0371888 1.039574 9 19 3 1.0512661 1.013286 4
示例
df2$g1: 4
輸出
g1 g2 g3 g4 3 4 0.9902820 1.161732 11 4 4 0.7175320 1.814506 4 7 4 1.5698800 1.570466 11 10 4 0.4746240 1.243342 11 12 4 1.4137269 1.289525 5 14 4 1.3936072 1.313207 5 15 4 0.6832531 1.496392 3 18 4 1.7064870 1.517545 6
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP