我想为矩阵x的每一列实现一个函数。
但是,矩阵x是for循环中另一个apply函数的输出。
x=apply(y,2,function(x) approx(...))
在某些情况下,约函数只返回一个值。然后,输出x将是1 * 1000向量。然后x的apply函数将失败。 我尝试使用as.matrix函数,但它会将向量转换为1000 * 1.
我认为唯一的方法是使用if语句来查看dim(x)是否为null。 如果dim(x)为null,则x为1 * 1000,我将再写几行来处理向量大小写。如果dim(x)不为null,则apply函数将正常工作。
有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
最后,我没有按照Gavin Kelly在评论中提出的方式,即使用t(x)。 我用
if (is.null(dim(X)){(the special case if X is a vector)}else{(the regular way}
解决此问题。它看起来有点笨拙,但它最后工作.. 欢迎任何更好的解决方案:)