2015-07-07 1 views
2

Я новичок в R. Я следующий кодПочему dim из colMeans/rowMeans возвращает null?

sigma1 = matrix(c(2,0,0,1),2,2) 
mu1  = matrix(c(0,10),2,1) 

x1  = t(mvrnorm(n = 5, mu1, sigma1)) 

print(rowMeans(x1)) 
print(dim(colMeans(x1))) 

и по какой-то причине я получаю NULL для измерения строк/COL средств.

+6

Поскольку 'rowMeans' говорит, что он возвращает вектор, если результат является одномерным, а векторы не имеют? тускнеет. –

+2

..так, вы будете использовать 'length (1: 5)' для векторов или (путано) 'NROW (1: 5)', но не 'nrow (1: 5)' и ни 'ncol (1: 5)', ни _definitely not_' NCOL (1: 5) ' – rawr

+1

Как я могу заставить R постоянно обрабатывать векторы, такие как матрицы? – Ash

ответ

0

Если вы действительно хотите, чтобы заставить вектор в матрицу, можно попробовать что-то вроде:

## Initial Computations. 
sigma1 = matrix(c(2,0,0,1),2,2) 
mu1 = matrix(c(0,10),2,1) 
x1 = t(mvrnorm(n = 5, mu1, sigma1)) 

## Coerce the vector of colMeans into a 1 by 5 matrix. 
colmeans.x1 = rbind(colMeans(x1)) 

## Inspect the dimensions of the matrix created above. 
dim(colmeans.c1) 

Надежда, которая помогает ...

2

«as.matrix» поворачивает вектор «colMeans (x1) 'в матрицу. Тогда размеры 5 и 1, как и ожидалось:

library(rockchalk) 

sigma1 = matrix(c(2,0,0,1),2,2) 
mu1  = matrix(c(0,10),2,1) 
x1  = t(mvrnorm(n = 5, mu1, sigma1)) 

print(rowMeans(x1)) 
print(dim(colMeans(x1))) 
print(dim(as.matrix(colMeans(x1)))) 

Выход:

> print(rowMeans(x1)) 
[1] -0.1518187 9.4232239 

> print(dim(colMeans(x1))) 
NULL 

> print(dim(as.matrix(colMeans(x1)))) 
[1] 5 1 
> 

 Смежные вопросы

  • Нет связанных вопросов^_^