如何编写R函数将向量转换为指定格式的矩阵?
解决R函数返回指定矩阵的问题
方法一:直接用cbind构造列矩阵(最直观)
直接将输入值、平方值、立方值分别作为列组合,得到的矩阵正好满足需求:
f <- function(x) { cbind(x, x^2, x^3) } # 测试输入 f(c(2, 3, 4))
运行输出:
x x^2 x^3 [1,] 2 4 8 [2,] 3 9 27 [3,] 4 16 64
方法二:重塑原函数的向量结果
如果想基于原函数的向量输出改造,可通过matrix()指定按行填充,将长向量转为矩阵:
f <- function(x) { res <- c(x, x^2, x^3) # 按行填充为 length(x) 行、3列的矩阵 matrix(res, nrow = length(x), byrow = TRUE) } # 测试输入 f(c(2, 3, 4))
运行输出:
[,1] [,2] [,3] [1,] 2 4 8 [2,] 3 9 27 [3,] 4 16 64
可选:添加列名增强可读性
如果需要给矩阵列命名,可在函数中加入colnames()设置:
f <- function(x) { mat <- cbind(x, x^2, x^3) colnames(mat) <- c("原值", "平方值", "立方值") mat }
内容的提问来源于stack exchange,提问作者LlamaWaffles
相关产品推荐
相关产品推荐

