我有一个矩阵和一个函数,它接受一个向量并返回一个矩阵.我想将函数应用于矩阵的所有行并将所有结果一起rbind.例如
mat <- matrix(1:6, ncol=2)
f <- function (x) cbind(1:sum(x), sum(x):1)
do.call(rbind, apply(mat, 1, f))
Run Code Online (Sandbox Code Playgroud)
这很有效,因为返回的矩阵具有不同的行数,因此apply返回一个列表.但是,如果他们碰巧有相同数量的行,那么它就不再起作用了:
mat <- f(3)
apply(mat, 1, f)
Run Code Online (Sandbox Code Playgroud)
apply返回一个矩阵,我无法得到我想要的结果.是否可以强制申请返回列表或是否有其他解决方案?
对于这个函数,我可以使用元组元素作为参数:
light_blue = .6, .8, .9
gradient.add_color_rgb(0, *light_blue)
Run Code Online (Sandbox Code Playgroud)
如果我必须在元组之后添加另一个参数怎么办?
light_blue = .6, .8, .9
alpha = .5
gradient.add_color_rgba(0, *light_blue, alpha)
Run Code Online (Sandbox Code Playgroud)
不起作用.工作是什么
gradient.add_color_rgba(0, *list(light_blue)+[alpha])
Run Code Online (Sandbox Code Playgroud)
这看起来并不比
gradient.add_color_rgba(0, light_blue[0], light_blue[1], light_blue[2], alpha)
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?