【发布时间】:2021-07-27 02:43:46
【问题描述】:
我想制作一个 2x2 矩阵的列表,其中数据帧的每一行都变成一个 2x2 矩阵。我将使用一个巨大的数据集(为方便起见的玩具示例),所以我试图弄清楚如何在没有 for 循环的情况下做到这一点。我一直在尝试使用自制函数和 apply() 来执行此操作,但收到一条错误消息。
dat<-data.frame(x1=c(2,3,4),
x2=c(1,2,3),
x3=c(5,76,7),
x4=c(4,6,0))
make_matrix<-function(df){
with(dat, matrix(c(x1,x2,x3, x4),byrow=T,nrow=2, ncol=2))
}
apply(dat, 1, FUN=make_matrix)
Error in eval(substitute(expr), data, enclos = parent.frame()) :
numeric 'envir' arg not of length one
【问题讨论】:
标签: r matrix error-handling apply do.call