2010-08-02 36 views
24

Ho questo file .csv:Come ottenere un file .csv in R?

ID,GRADES,GPA,Teacher,State 

3,"C",2,"Teacher3","MA" 

1,"A",4,"Teacher1","California" 

E quello che voglio fare è leggere nel file utilizzando il software statistico R e leggere nell'intestazione in una sorta di lista o array (Sono nuovo di R e sono stato alla ricerca di come farlo, ma finora non hanno avuto fortuna).

Ecco alcuni pseudocodice di ciò che voglio fare:

inputfile=read.csv("C:/somedirectory") 

for eachitem in row1:{ 

add eachitem to list 
} 

poi voglio essere in grado di utilizzare questi nomi per chiamare su ogni colonna verticale in modo che possa eseguire calcoli.

Sto setacciando su google per un'ora, cercando di scoprire come farlo, ma non c'è molto da fare sul tema delle intestazioni.

Grazie per il vostro aiuto!

+5

Invece di passare il tempo a perlustrare Google, il tuo tempo sarebbe stato meglio speso leggendo la documentazione fornita con R. In particolare, [la sezione "Variazioni su read.table"] (http://cran.r-project.org /doc/manuals/R-data.html#Variations-on-read_002etable) in [Importazione/Esportazione dati R] (http://cran.r-project.org/doc/manuals/R-data.html) e/o '? read.csv'. –

risposta

36

Hai detto che chiamerai su ogni colonna verticale in modo da può eseguire calcoli. Suppongo che tu voglia solo esaminare ogni singola variabile. Questo può essere fatto attraverso il seguente.

df <- read.csv("myRandomFile.csv", header=TRUE) 

df$ID 

df$GRADES 

df$GPA 

Potrebbe essere utile solo per assegnare i dati a una variabile.

var3 <- df$GPA 
+0

Sì, desidero accedere a ciascuna variabile, ma non sempre so quale etichetta usano ... Speravo di scorrerli per posizione anziché per nome effettivo. – Brian

+1

str (df) ti darà i nomi delle variabili per ogni variabile nel set di dati. Se vuoi conoscere i livelli di ogni singola variabile, come GPA, esegui entrambi gli attributi (df $ var3) o livelli (df $ var3) – ATMathew

8

È necessario read.csv("C:/somedirectory/some/file.csv") e, in generale, non fa male guardare effettivamente la pagina di aiuto, inclusa la sua sezione di esempio in basso.

6

Come diceva Dirk, la funzione che si sta cercando è "read.csv" o una delle altre varianti read.table. Dato i tuoi dati di esempio di cui sopra, credo che si vuole fare qualcosa di simile:

setwd("c:/random/directory") 

df <- read.csv("myRandomFile.csv", header=TRUE) 

Tutti abbiamo fatto in precedenza è stata impostata la directory in cui il file .csv è e quindi leggere il .csv in un dataframe chiamato df. È possibile verificare che i dati caricati correttamente controllando la struttura dell'oggetto con:

str(df) 

Supponendo che i dati caricati correttamente, si può pensare andare avanti per eseguire un numero qualsiasi di metodi statistici con i dati contenuti nel data frame. Penso che summary(df) sarebbe un buon punto di partenza. Imparare a usare l'aiuto in R sarà estremamente utile e una rapida lettura dell'aiuto su CRAN ti farà risparmiare molto tempo: http://cran.r-project.org/

3

È possibile utilizzare

df <- read.csv("filename.csv", header=TRUE) 

# To loop each column 
for (i in 1:ncol(df)) 
    { 
    dosomething(df[,i]) 
    } 
# To loop each row 
for (i in 1:nrow(df)) 
    { 
    dosomething(df[i,]) 
    } 

Inoltre, si consiglia di dare un'occhiata alla funzione apply (tipo ?apply o help(apply)) se si desidera utilizzare la stessa funzione su ogni riga/colonna

1

si prega di controllare questo fuori se ti aiuta

df < -read.csv ("F:/test.csv", intestazione = FALSE, nRows = 1) df V1 V2 V3 V4 V5 1 GRADI ID GPA insegnante Stato un < -c (df) un [1] $ V1 [1] ID Livelli: ID

a [2] $ V2 [1] GRADI Livelli: GRADI

a [3] $ V3 [1] GPA Livelli: GPA

un [4] $ V4 [1] Insegnante Livelli: Insegnante

un [5] $ V5 [1] Stato livelli: Stato

0

Dal momento che si dice che si desidera accedere in base alla posizione una volta letti i dati, è necessario conoscere le funzioni di subsetting/indicizzazione di R.

Il metodo più semplice è

df[row,column] 
#example 
df[1:5,] #rows 1:5, all columns 
df[,5] #all rows, column 5. 

Altri metodi sono here. Personalmente utilizzo il pacchetto dplyr per la manipolazione intuitiva dei dati (non per posizione).

Problemi correlati