web-dev-qa-db-fra.com

Comment obtenir un fichier .csv dans R?

J'ai ce fichier .csv:

ID,GRADES,GPA,Teacher,State

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

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

Et ce que je veux faire est de lire dans le fichier en utilisant le logiciel statistique R et dans l'en-tête dans une sorte de liste ou de tableau (je suis nouveau dans R et j'ai cherché comment le faire, mais jusqu'à présent pas de chance).

Voici quelques pseudocodes de ce que je veux faire:

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

for eachitem in row1:{

add eachitem to list
}

Ensuite, je veux pouvoir utiliser ces noms pour appeler sur chaque colonne verticale afin que je puisse effectuer des calculs.

Cela fait une heure que j'explore Google, que j'essaie de comprendre, mais il n'y a pas grand-chose pour traiter les en-têtes de manière spécifique.

Merci de votre aide! 

32
Brian

Vous indiquez que vous allez appeler chaque colonne verticale pour pouvoir effectuer des calculs. Je suppose que vous voulez juste examiner chaque variable. Cela peut être fait à travers ce qui suit.

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

df$ID

df$GRADES

df$GPA

Peut-être utile d'attribuer les données à une variable.

var3 <- df$GPA
43
ATMathew

Vous avez besoin de read.csv("C:/somedirectory/some/file.csv") et, en général, il n’est pas gênant de consulter la page d’aide, y compris la section exemple en bas.

9
Dirk Eddelbuettel

Comme Dirk l'a dit, la fonction que vous recherchez est 'read.csv' ou l'une des autres variantes de read.table. Étant donné les exemples de données ci-dessus, je pense que vous voudrez faire quelque chose comme ceci:

setwd("c:/random/directory")

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

Tout ce que nous avons fait dans ce qui précède a été défini dans le répertoire où se trouve votre fichier .csv, puis lisez le fichier .csv dans un fichier de données nommé df. Vous pouvez vérifier que les données sont correctement chargées en vérifiant la structure de l'objet avec:

str(df)

En supposant que les données soient chargées correctement, vous pouvez continuer à exécuter un certain nombre de méthodes statistiques avec les données de votre bloc de données. Je pense que summary(df) serait un bon point de départ. Apprendre à utiliser l'aide de R sera extrêmement utile, et une lecture rapide de l'aide sur CRAN vous fera gagner beaucoup de temps à l'avenir: http://cran.r-project.org/

6
Chase

Vous pouvez utiliser

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,])
    }

Vous pouvez également consulter la fonction apply (type ?apply ou help(apply)) si vous souhaitez utiliser la même fonction sur chaque ligne

3
nico

S'il vous plaît vérifier ceci si cela vous aide

df <-read.csv ("F: /test.csv", entête = FAUX, nrows = 1) df V1 V2 V3 V4 V5 1 ID GRADES GPA État enseignant a <-c (df) a [1] $ V1 [1] ID Niveaux: ID

a [2] $ V2 [1] NUANCES Niveaux: Grades

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

a [4] $ V4 [1] Enseignant Niveaux: Enseignant

a [5] $ V5 [1] Etat Niveaux: Etat

1
Sandeep

Puisque vous dites que vous souhaitez accéder par position une fois que vos données sont lues, vous devez connaître les fonctions de sous-réglage/indexage de R. 

Le plus simple est 

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

Les autres méthodes sont ici . J'utilise personnellement le paquet dplyr pour la manipulation intuitive des données (et non par la position).

0
jsl2