Package: R.filesets =================== Version: 1.1.4 [2011-11-19] o Now more methods for GenericDataFile and GenericDataFileSet handle so called "empty" files, which are files with NULL pathnames. Version: 1.1.3 [2011-09-26] o Added methods set- and getCommentChar() to TabularTextFile and argument 'commentChar' to its constructor. This allows to use custom comment characters other than just "#". Version: 1.1.2 [2011-09-11] o BUG FIX: GenericDataFileSet$byName(..., subdirs) would throw 'Error in strsplit(subdirs, split = "/\\")' iff subdirs != NULL. o Improved the handling of the newly introduced 'depth' parameter, e.g. by making it optional/backward compatible. Version: 1.1.1 [2011-07-25] o Added "depth" to GenericDataFileSet, such that one can correctly infer fullname and subdirs from the path. Version: 1.1.0 [2011-07-24] o Added a namespace to the package, which will be more or less a requirement in the next major release of R. Version: 1.0.4 [2011-07-15] o Added argument 'named' to getTags() for FullNameInterface. If TRUE, tags of format "=" will be parsed and returned as a named "", e.g. "foo,n=23,bar,n=42" is returned as c("foo", "n"="23", "bar", "n"="42"). Version: 1.0.3 [2011-07-13] o GENERALIZATION: Now readDataFrame(..., colClasses=..., trimQuotes=TRUE) of TabularTextFile will read numeric columns that are quoted. This is done by first reading them as quoted character strings, dropping the quotes, and then rereading them as numeric values. Version: 1.0.2 [2011-05-23] o Added argument '.fileClass' to appendFiles() for GenericDataFileSet. Version: 1.0.1 [2011-05-16] o ROBUSTNESS: Now appendFiles() for GenericDataFileSet asserts that all files to be appended are instances of the file class of this set as given by the static getFileClass(). o ROBUSTNESS: Added argument '.assertSameClass' to appendFiles() for GenericDataFileSet, which if TRUE asserts that the files to be appended inherits from the same class as the existing files. Before this test was mandatory. Version: 1.0.0 [2011-04-06] o Added getChecksum() to GenericDataFileSet, which calculates the checksum of the object returned by the protected getChecksumData(). Use with care, because what objects should be the basis of the checksum is not clear, e.g. should it be only the file system checksum, or should things such as translated fullnames be included as well? Version: 0.9.9 [2011-04-04] o BUG FIX: equals() for GenericDataFile would consider two files not to be equal only if their checksums was equal, and vice versa. Also, when creating the message string explaining why they differ an error would have been thrown. Version: 0.9.8 [2011-04-03] o CLEANUP: Utilizing hpaste() internally wherever applicable. Version: 0.9.7 [2011-03-11] o ROBUSTNESS: Now appendFullNameTranslatorBy() for and assert that the translator correctly returns exactly one string. This has the effect that setFullName() and friends are also tested. Version: 0.9.6 [2011-03-09] o Added '=' to the list of safe characters for Arguments$getFilename(). o Added fullname(), name(), tags(), and dropTags(). Version: 0.9.5 [2011-02-27] o BUG FIX: After the recent generalization of findByName() for GenericDataFileSet it would throw "" in case no matching root path directories existed. Version: 0.9.4 [2011-02-24] o Added dropRootPathTags(). o GENERALIZATION: Added support to findByName() for GenericDataFileSet such that root paths also can be specified by simple regular expression (still via argument 'paths'). Currently it is only the last subdirectory that can be expanded, e.g. foo/bar/data(,.*)/. Version: 0.9.3 [2011-02-18] o GENERALIZATION: Now byName() for GenericDataFileSet will try all possible data set directories located when trying to setup a data set. Before it only tried the first one located. This new approach is equally fast for the first data set directory as before. The advantage is that it adds further flexibilities, e.g. the first directory may not be what we want but the second, which can be further tested by the byPath() and downstream methods such as the constructor. o ROBUSTNESS: Now writeColumnsToFiles() for TabularTextFile writes files atomically, which should minimize the risk for generating incomplete files. o CLEANUP: Copied static getTags() for Arguments from aroma.core package. o DEPRECATION: Added a warning message reporting that fromFiles() of GenericDataFileSet has been deprecated, if still called by someone. Version: 0.9.2 [2011-02-14] o GENERALIZATION: Now append() for GenericDataFileSet tries to also append non-GenericDataFileSet object by passing them down to appendFiles() assuming they are GenericDataFile:s. o GENERALIZATION: Now appendFiles() for GenericDataFileSet also accepts a single item. Thus, there is no longer a need to wrap up single items in a list. Version: 0.9.1 [2010-11-19] o ROBUSTNESS: Now GenericDataFileSet$byName() asserts that arguments 'name' and 'tags' contain only valid characters. This will for instance prevent passing paths or pathnames by mistake. o Now appendFullNameTranslator(..., df) for FullNameInterface takes either 'pattern' or 'fixed' translations in data.frame. Version: 0.9.0 [2010-08-19] o Added sortBy() to GenericDataFileSet, which sorts files either in a lexicographic or a mixedsort order. o DOCUMENTATION: Added more Rd help pages. o DOCUMENTATION: Removed any duplicated \usage{} statements from the Rd documentation. Version: 0.8.3 [2010-07-06] o BUG FIX: indexOf() for GenericDataFileSet/List would return NA if the search pattern/string contained parentheses. The reason is that such have a special meaning in regular expression. Now indexOf() first search by regular expression patterns, then by fixed strings. Thanks Johan Staaf at Lund University and Larry(?) for reporting on this issue. Version: 0.8.2 [2010-05-26] o Now GenericDataFileSet$findByName(..., mustExist=FALSE) do no longer throw an exception even if there is no existing root path. o Added argument 'firstOnly=TRUE' to findByName() for GenericDataFileSet. o Added appendFullNameTranslatorBy...() methods to the FullNameInterface class for data frames, TabularTextFile:s, and TabularTextFileSet:s. Version: 0.8.1 [2010-04-22] o Added "NA" to the default 'na.strings' returned by getReadArguments() for TabularTextFile. Version: 0.8.0 [2010-02-22] o Submitted to CRAN. No changes since v0.7.6. Version: 0.7.6 [2010-02-13] o Added argument '.onUnknownArgs' to GenericDataFile() and GenericDataFileSet(). As before, the default is to throw an exception if there are unknown arguments. However, in certain case it is useful to allow (and ignore) "stray" arguments. Version: 0.7.5 [2010-02-07] o BUG FIX: indexOf() of GenericDataFileSet and GenericDataFileSetList did not handle names with regular expression symbols '+' and '*'. Thanks to Randy Gobbel for the initial error report. Version: 0.7.4 [2010-01-31] o DOCUMENTATION: Added Rd help paged to more methods for classes GenericDataFile and GenericDataFileSet. o DEPRECATION: Deprecated static fromFiles() of GenericDataSet. Use byPath() instead. Version: 0.7.3 [2010-01-24] o ROBUSTNESS: If argument 'files' is logical, then extract() of GenericDataFileSet and GenericDataFileSetList now asserts that the length of 'files' matches the number of available files. Version: 0.7.2 [2010-01-12] o Added some example data files under exData/. o BUG FIX: readColumns(..., column=) on a TabularTextFile would give "Error ... object 'columnNames' not found". Version: 0.7.1 [2010-01-02] o Now setExtensionPattern(..., pattern=NULL) of GenericDataFile works. o Added argument 'default="\\.([^.]+)$"' to getExtensionPattern() of GenericDataFile. Before the default value was hardcoded inside this function. Version: 0.7.0 [2010-01-02] o Added protected as.data.frame() to GenericDataFileSetList. o Now GenericDataFile(NA, mustExist=FALSE) is a valid object. Made all methods aware of such missing files. o Now extract(ds, c(1,2,NA,4), onMissing="NA") returns a valid GenericDataFileSet where missing files are returned as missing GenericDataFile:s. o Added na.rm=TRUE to all getTags() so that it returns NULL in case the file is missing. o copyTo() of GenericDataFileSet quietly ignores missing files. o Added Rd help for indexOf() of GenericDataFileSet. o ROBUSTNESS: Using new Arguments$getInstanceOf() were possible. o ROBUSTNESS: Now all index arguments are validated correctly using the new 'max' argument of Arguments$getIndices(). Before the case where "max == 0" was not handled correctly. o BUG FIX: Changed the default to 'parent=0' for getDefaultFullName() of GenericDataFileSet to be consistent with the documentation. o BUG FIX: Now GenericDataFile(pathname) throws an error if 'pathname' is referring to a directory. o BUG FIX: getPath() and getDefaultFullName() of GenericDataFileSet would return a *logical* instead of *character* value. o BUG FIX: indexOf(ds, names) of GenericDataFileSet would return a *logical* instead of an *integer* vector of NA:s if none of the names existed. Version: 0.6.5 [2009-10-30] o ROBUSTIFICATION: Now translateFullName() of FullNameInterface and translateColumnNames() of GenericTabularFile throw an exception if some fullnames were translated into NA. They also assert that no names were dropped or added in the process. o BUG FIX: After doing append() to a GenericDataFileSet, the total file size reported would remain the same. o BUG FIX: Appending empty data sets using append() of GenericDataFileSet would give error Error in this$files[[1]] : subscript out of bounds. Version: 0.6.4 [2009-10-25] o Added get- and setExtensionPattern() to FullNameInterface. o Added getExtension() to GenericDataFile. Version: 0.6.3 [2009-10-23] o Added appendFullNameTranslatorBylist() which makes it possible to do setup a sequence of fullnames translators fnt1, fnt2, fnt3 by calling setFullNameTranslator(..., list(fnt1, fnt2, fnt3)). Version: 0.6.2 [2009-10-22] o Added support for having a sequence of fullname translator functions. These can be added using appendFullNameTranslator(). o Added an example() to FullNameInterface. Version: 0.6.1 [2009-10-06] o Added subsetting via [() to TabularTextFile. Version: 0.6.0 [2009-10-02] o Added the FullNameInterface, which is the interface class that defines what fullnames, names, tags etc are. o Now setFullName*s*Translator() for GenericDataFileSet dispatches on the 'by' argument. If that is not possible, it call setFullNameTranslator() for each file in the set (as before). o CLEAN UP: Renamed fromFiles() to byPath(). For backward compatibility the former calls the latter. o CLEAN UP: GenericDataFile and GenericDataFileSet implements the FullNameInterface, which mean less redundant code. Version: 0.5.3 [2009-08-12] o Now findByName() of GenericDataFileSet follows Windows Shortcut links also for subdirectories. Version: 0.5.2 [2009-06-08] o Analogously to the method for a GenericDataFile, the setFullNameTranslator() method for GenericDataFileSet now assumes that the fullname translator function accepts also argument 'set'. o Added argument '.fileSetClass' to GenericDataFileSet(). Version: 0.5.1 [2009-05-19] o A fullname translator function for a GenericDataFile should accept any number of arguments. The first argument will always be (an unnamed) argument containing the name (or names) to be translated. If the translator is for a GenericDataFile, an additional argument 'file' will also be passed. This allows the translator function to for instance read the file header and infer the name that way. Version: 0.5.0 [2009-05-17] o Extracted several classes and methods from the aroma.core package. o Created package.