ckl*_*uss 2 r multidimensional-array dataframe
我喜欢定义data.frame(A,B,C,...)的3D数组,以便我能做到
for (x in 1:4)
for (y in 1:5)
for (z in 1:5) {
m[x,y,z]$A <- dnorm(1)
m[x,y,z]$B <- dnorm(1)
m[x,y,z]$C <- dnorm(1)
}
Run Code Online (Sandbox Code Playgroud)
如果我得到一个带有x,y,z id的data.frame(x,y,z,A,B,C)以及一个操作和读取任何行"x,y的简短而有效的方法",那也没关系. Z".
也许有更好的想法?我喜欢摆脱
mA[x,y,z] <- ...
mB[x,y,z] <- ...
mC[x,y,z] <- ...
Run Code Online (Sandbox Code Playgroud)
更标准的格式是具有6列--- x,y,z,A,B和C的数据框.您可以通过以下方式实现此目的:
dat <- expand.grid(x=1:4, y=1:5, z=1:5, A=dnorm(1), B=dnorm(1), C=dnorm(1))
head(dat)
# x y z A B C
# 1 1 1 1 0.2419707 0.2419707 0.2419707
# 2 2 1 1 0.2419707 0.2419707 0.2419707
# 3 3 1 1 0.2419707 0.2419707 0.2419707
# 4 4 1 1 0.2419707 0.2419707 0.2419707
# 5 1 2 1 0.2419707 0.2419707 0.2419707
# 6 2 2 1 0.2419707 0.2419707 0.2419707
Run Code Online (Sandbox Code Playgroud)