2014-12-28 10 views
11

Sono nuovo a R, quindi molto probabilmente questa è una domanda stupida.
Ogni volta che creo dati artificiali e, a volte, utilizzando set di dati importati, R indica che le mie variabili non hanno righe o colonne.
Posso eseguire regressioni ma non posso basare i comandi sul numero di righe/colonne che hanno le mie variabili.
Ad esempio, supponiamo di avere una variabile x1, che è un vettore colonna di 100 osservazioni.Perché ncol e nrow producono NULL solo quando sono presenti dati?

ncol(x1) 

NULL 

nrow(x1) 

NULL 

Tuttavia, se faccio questo:

x=t(x) 
x=t(x) 

e digitare nuovamente ncol(x), nrow(x), quindi ottengo il numero effettivo di colonne, righe che l'oggetto contiene.

Perché questo sta accadendo e come posso risolvere questo senza dover utilizzare t()?

+2

ci sono righe o colonne in un vettore di base. Questo potrebbe essere il tuo problema? – A5C1D2H2I1M1N2O1R2T1

+2

Prova invece 'NCOL' e' NROW'. Lavorano con i vettori. –

+0

OK, ora capisco. Grazie! – Goose

risposta

19

È necessario utilizzare NCOL(x) e NROW(x) per un vettore. Trasponendo x (t(x)) lo si trasforma in una matrice, quindi funzionano ncol(x) e nrow(x).

E 'nel file di aiuto:

ncol nRow e ncol restituire il numero di righe o colonne presenti in X?. NCOL e NROW fanno lo stesso trattamento di un vettore come matrice a 1 colonna.

> x <- 1:100 
> is.matrix(x) 
[1] FALSE 
> NCOL(x) 
[1] 1 
> y <- t(x) 
> is.matrix(y) 
[1] TRUE 
> ncol(y) 
[1] 100 
+0

Grazie! Ho completamente perso questo file. – Goose

Problemi correlati