user32259 user32259 - 16 days ago 7
R Question

Importing csv file into R - numeric values read as characters

I am aware that there are similar questions on this site, however, none of them seem to answer my question sufficiently.

This is what I have done so far:

I have a csv file which I open in excel. I manipulate the columns algebraically to obtain a new column "A". I import the file into R using

read.csv()
and the entries in column A are stored as factors - I want them to be stored as numeric. I find this question on the topic:

Imported a csv-dataset to R but the values becomes factors

Following the advice, I include
stringsAsFactors = FALSE
as an argument in
read.csv()
, however, as Hong Ooi suggested in the page linked above, this doesn't cause the entries in column A to be stored as numeric values.

A possible solution is to use the advice given in the following page:

How to convert a factor to an integer\numeric without a loss of information

however, I would like a cleaner solution i.e. a way to import the file so that the entries of column entries are stored as numeric values.

Cheers for any help!

Answer

Whatever algebra you are doing in Excel to create the new column could probably be done more effectively in R.

Please try the following: Read the raw file (before any excel manipulation) into R using read.csv(... stringsAsFactors=FALSE). [If that does not work, please take a look at ?read.table (which read.csv wraps), however there may be some other underlying issue].

For example:

   delim = ","  # or is it "\t" ?
   dec = "."    # or is it "," ?
   myDataFrame <- read.csv("path/to/file.csv", header=TRUE, sep=delim, dec=dec, stringsAsFactors=FALSE)

Then, let's say your numeric columns is column 4

   myDataFrame[, 4]  <- as.numeric(myDataFrame[, 4])  # you can also refer to the column by "itsName"


Lastly, if you need any help with accomplishing in R the same tasks that you've done in Excel, there are plenty of folks here who would be happy to help you out