I created the following file: symbol,shares XOM,1000 APA,400 CVX,200 I then read the file in R using the command: stockList=read.table("/NotesOnR/stockList", header = T, sep=",") I would then expect the following expression to evaluate to the simple string APA: stockList$symbol[2] However when I type that in on the command line, I get: [1] APA Levels: APA CVX XOM I would also expect to be able to print out the table by using the command: for( i in 1:3 ) { print( stockList$symbol[i] ) print ( stockList$shares[i] ) } However, as part of the output I get: Levels: APA CVX XOM I do not understand what is going on. Also, when I try passing the expression stockList$symbol to a standard function in R, it does not work. I think that I am missing something here but I am not sure what I am missing. Should I be writing code like: for ( i in stockList$smybol ) However, given the symbol, I am not sure how to get the share count that is in the same row. I thank the group in advance for their responses. Bob
David Winsemius
2014-Jun-29 22:57 UTC
[R] A Question about read.table and Data Frames in R
On Jun 29, 2014, at 3:22 PM, Robert Sherry wrote:> I created the following file: > > symbol,shares > XOM,1000 > APA,400 > CVX,200 > > I then read the file in R using the command: > stockList=read.table("/NotesOnR/stockList", header = T, sep=",") > > I would then expect the following expression to evaluate to the simple > string APA: > stockList$symbol[2] > However when I type that in on the command line, I get: > [1] APA > Levels: APA CVX XOM > > I would also expect to be able to print out the table by using the > command: > for( i in 1:3 ) { > print( stockList$symbol[i] ) > print ( stockList$shares[i] ) > } > > However, as part of the output I get: > Levels: APA CVX XOM > I do not understand what is going on. Also, when I try passing the > expression stockList$symbol to a standard function in R, it does not > work. > > I think that I am missing something here but I am not sure what I am > missing.You are missing the fact that a factor variable was created. If you had added stringsAsFactors=FALSE to your read.table code, you would ahve gotten what you expected.> Should I be writing code like: > for ( i in stockList$smybol ) > However, given the symbol, I am not sure how to get the share count > that is > in the same row. > > I thank the group in advance for their responses. > > Bob > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.David Winsemius, MD Alameda, CA, USA