如何使用 sapply 获取 2 列 8 行矩阵而不是返回 2 行 8 列矩阵?
How to get a 2 columns, 8 rows matrix instead of returning 2 rows, 8 columns matrix using sapply?
我想使用 sapply
创建一个 2 列、8 行的矩阵。第一列是从 1 到 8,第二列是第一列的平方。我做了 sapply(1:8, function(x), c(x,x^2))
所以我得到了 8 列和 2 行而不是 2 列和 8 行。如何用行替换列?
sapply
的默认值本质上是 cbind
最终输出。您可以告诉它不要简化或只是转置您的结果。
# manual rbind
do.call("rbind", sapply(1:8, function(x) c(x,x^2), simplify=FALSE))
# transpose result
t(sapply(1:8, function(x) c(x,x^2)))
尝试使用 t
> t(sapply(1:8, function(x) c(x,x^2)))
[,1] [,2]
[1,] 1 1
[2,] 2 4
[3,] 3 9
[4,] 4 16
[5,] 5 25
[6,] 6 36
[7,] 7 49
[8,] 8 64
实际上不需要使用sapply
,只需使用matrix
> x <- 1:8
> matrix(c(x,x^2), ncol=2)
我想使用 sapply
创建一个 2 列、8 行的矩阵。第一列是从 1 到 8,第二列是第一列的平方。我做了 sapply(1:8, function(x), c(x,x^2))
所以我得到了 8 列和 2 行而不是 2 列和 8 行。如何用行替换列?
sapply
的默认值本质上是 cbind
最终输出。您可以告诉它不要简化或只是转置您的结果。
# manual rbind
do.call("rbind", sapply(1:8, function(x) c(x,x^2), simplify=FALSE))
# transpose result
t(sapply(1:8, function(x) c(x,x^2)))
尝试使用 t
> t(sapply(1:8, function(x) c(x,x^2)))
[,1] [,2]
[1,] 1 1
[2,] 2 4
[3,] 3 9
[4,] 4 16
[5,] 5 25
[6,] 6 36
[7,] 7 49
[8,] 8 64
实际上不需要使用sapply
,只需使用matrix
> x <- 1:8
> matrix(c(x,x^2), ncol=2)