tags:

views:

137

answers:

4

Hello.... I have this .csv file:

ID,GRADES,GPA,Teacher,State

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

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

And what I want to do is read in the file using the R statistical software and read in the Header into some kind of list or array (I'm new to R and have been looking for how to do this, but so far have had no luck).

Here's some pseudocode of what I want to do:

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

for eachitem in row1:{

add eachitem to list
}

Then I want to be able to use those names to call on each vertical column so that I can perform calculations.

I've been scouring over google for an hour, trying to find out how to this but there is not much out there on dealing with headers specifically.

Thanks for your help!

+4  A: 

You need read.csv("C:/somedirectory/some/file.csv") and in general it doesn't hurt to actually look at the help page including its example section at the bottom.

Dirk Eddelbuettel
+1  A: 

As Dirk said, the function you are after is 'read.csv' or one of the other read.table variants. Given your sample data above, I think you will want to do something like this:

setwd("c:/random/directory")

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

All we did in the above was set the directory to where your .csv file is and then read the .csv into a dataframe named df. You can check that the data loaded properly by checking the structure of the object with:

str(df)

Assuming the data loaded properly, you can think go on to perform any number of statistical methods with the data in your data frame. I think summary(df) would be a good place to start. Learning how to use the help in R will be immensely useful, and a quick read through the help on CRAN will save you lots of time in the future: http://cran.r-project.org/

Chase
+2  A: 

You mention that you will call on each vertical column so that you can perform calculations. I assume that you just want to examine each single variable. This can be done through the following.

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

df$ID

df$GRADES

df$GPA

Might be helpful just to assign the data to a variable.

var3 <- df$GPA
ATMathew
Yes, I do want to access each variable, however I do not always know what label they use... I was hoping to loop through them by position rather than actual name.
Brian
str(df) will give you the variable names for each variable in the data set. If you want to know the levels of each single variable, such as GPA, run either attributes(df$var3) or levels(df$var3)
ATMathew
+1  A: 

You can use

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

Also, you may want to have a look to the apply function (type ?apply or help(apply))if you want to use the same function on each row/column

nico