efridge
2014-Jun-19 19:08 UTC
[R] R is converting arg input to scientific notation, which is bad!
Hello, Firstly, real new to R here. I have a function intended to evaluate the values in columns spread over many tables. I have an argument in the function that allows the user to input what sequence of tables they want to draw data from. The function seems to work fine, but when the user inputs a single number (over 9) instead of a sequence using the : operator, I find an error message: the input for this example is 30 Error in file(file, "rt") : cannot open the connection 5 file(file, "rt") 4 read.table(file = file, header = header, sep = sep, quote = quote, dec dec, fill = fill, comment.char = comment.char, ...) 3 FUN("specdata/3e+01.csv"[[1L]], ...) 2 lapply(filepaths, read.csv) 1 pollutantmean("specdata", "nitrate", 30) In addition: Warning message: In file(file, "rt") : cannot open file 'specdata/3e+01.csv': No such file or directory *The problem is that when a single number (30, 104, 223) is input, it's being stored as 3e+01 and no longer corresponds with the .csv file I'm trying to call (030.csv).* Below is my code: pollutantmean <- function(directory, pollutant, id = 1:332){ filenames <- paste0(formatC(id, digits = 0, width = 3, flag = "0"), ".csv") filepaths <- file.path(directory, filenames) list_of_data_frames <- lapply(filepaths, read.csv) big.df<-do.call(rbind,list_of_data_frames) print(str(big.df)) mean(big.df[,pollutant], na.rm=TRUE) } I'm curious if formatC() is converting the number to scientific notation or is that the default for R if there is no sequence when there could be. Many of you probably recognize this as a coursera assignment. It's beyond the due date and I've submitted some (pretty not good) code for it. I just want to have a good understanding of what's going on here, as this type of work is directly related to my research. -- View this message in context: http://r.789695.n4.nabble.com/R-is-converting-arg-input-to-scientific-notation-which-is-bad-tp4692389.html Sent from the R help mailing list archive at Nabble.com.
David Winsemius
2014-Jun-20 02:30 UTC
[R] R is converting arg input to scientific notation, which is bad!
On Jun 19, 2014, at 12:08 PM, efridge wrote:> Hello, > > Firstly, real new to R here. > > I have a function intended to evaluate the values in columns spread over > many tables. I have an argument in the function that allows the user to > input what sequence of tables they want to draw data from. The function > seems to work fine, but when the user inputs a single number (over 9) > instead of a sequence using the : operator, I find an error message: > > the input for this example is 30 > > Error in file(file, "rt") : cannot open the connection > > 5 file(file, "rt") > > 4 read.table(file = file, header = header, sep = sep, quote = quote, dec > dec, fill = fill, comment.char = comment.char, ...) > > 3 FUN("specdata/3e+01.csv"[[1L]], ...) > > 2 lapply(filepaths, read.csv) > > 1 pollutantmean("specdata", "nitrate", 30) > > In addition: Warning message: > > In file(file, "rt") : cannot open file 'specdata/3e+01.csv': No such file or > directory > > *The problem is that when a single number (30, 104, 223) is input, it's > being stored as 3e+01 and no longer corresponds with the .csv file I'm > trying to call (030.csv).* > > Below is my code: > > pollutantmean <- function(directory, pollutant, id = 1:332){ > filenames <- paste0(formatC(id, digits = 0, width = 3, flag = "0"), ".csv") > filepaths <- file.path(directory, filenames) > list_of_data_frames <- lapply(filepaths, read.csv) > big.df<-do.call(rbind,list_of_data_frames) > print(str(big.df)) > mean(big.df[,pollutant], na.rm=TRUE) > } > > I'm curious if formatC() is converting the number to scientific notation or > is that the default for R if there is no sequence when there could be.I think it's your `digits = 0` argument:> formatC(20, digits = 3, width = 3, flag = "0")[1] "020"> > Many of you probably recognize this as a coursera assignment. It's beyond > the due date and I've submitted some (pretty not good) code for it. I just > want to have a good understanding of what's going on here, as this type of > work is directly related to my research. > >-- David Winsemius Alameda, CA, USA
Seemingly Similar Threads
- scientific notation
- scientific vs. fixed notation in xyplot()
- Suppressing scientific notation on plot axis tick labels
- [LLVMdev] [PATCH] llvm-bcanalyzer: print percentages without scientific notation
- [LLVMdev] [PATCH] llvm-bcanalyzer: print percentages without scientific notation