Я хочу использовать sapply
для создания матрицы из 2 столбцов, 8 строк. Первый столбец от 1 до 8, а второй столбец - квадрат первого. Я сделал sapply(1:8, function(x), c(x,x^2))
, поэтому я получил 8 столбцов и 2 строки вместо двух столбцов и 8 строк. Как заменить столбцы по строкам?Как получить 2 столбца, 8 строк матрицы вместо возврата 2 строки, 8 столбцов матрицы, используя sapply?
2
A
ответ
4
По умолчанию для 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)))
5
попробуйте использовать 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)
Спасибо большое – Nour