R-组合3D矩阵和单个向量,然后选择特定的月份数据
我现在有一个单一的日期向量R-组合3D矩阵和单个向量,然后选择特定的月份数据,r,multidimensional-array,matrix,dataframe,combinations,R,Multidimensional Array,Matrix,Dataframe,Combinations,我现在有一个单一的日期向量a(362行)和一个三维矩阵B(维度360*180*3620) 是否可以将A和B组合为数据帧或其他内容。它必须与B[,,362]中的每个日期和每个温度相匹配。因此,每个日期对应一个360*180的矩阵 因为我计划这样做是为了选择特定的月份数据,有没有快捷方式可以选择月份数据而不合并这两个数据集?如果我了解您想要什么, 您可以使用melt将数组转换为data.frame, 然后使用merge将其与另一条数据连接起来。 如果要在末尾添加数组,可以使用acast 将data.
a
(362行)和一个三维矩阵B
(维度360*180*3620
)
是否可以将A
和B
组合为数据帧或其他内容。它必须与B
[,,362]中的每个日期和每个温度相匹配。因此,每个日期对应一个360*180的矩阵
因为我计划这样做是为了选择特定的月份数据,有没有快捷方式可以选择月份数据而不合并这两个数据集?如果我了解您想要什么, 您可以使用
melt
将数组转换为data.frame,
然后使用merge
将其与另一条数据连接起来。
如果要在末尾添加数组,可以使用acast
将data.frame转换回数组
# Sample data
n <- 10
d <- array(
rnorm(n^3),
dim = c(n,n,n),
dimnames = list(
One = LETTERS[1:n],
Two = LETTERS[1:n],
Three = LETTERS[1:n]
)
)
x <- data.frame( One=LETTERS[1:n], x=runif(n) )
library(reshape2)
d <- melt(d)
d <- merge( d, x, by="One", all=TRUE )
d$result <- d$value + d$x # Do something with the data
acast( d, One ~ Two ~ Three, value.var="result" )
#示例数据
很抱歉,这个方法很好,但是由于数据量很大,我一直试图运行它,程序会崩溃。有什么办法可以避免吗?
# Sample data
n <- 10
d <- array(
rnorm(n^3),
dim = c(n,n,n),
dimnames = list(
One = LETTERS[1:n],
Two = LETTERS[1:n],
Three = LETTERS[1:n]
)
)
x <- data.frame( One=LETTERS[1:n], x=runif(n) )
library(reshape2)
d <- melt(d)
d <- merge( d, x, by="One", all=TRUE )
d$result <- d$value + d$x # Do something with the data
acast( d, One ~ Two ~ Three, value.var="result" )