# note, try to use the fread, however, it has issues with
# some windows 10 files "Line ending is \r\r\n. .... appears to add the extra \r in text mode on Windows"
# in such as, use the slower read.table method
.readDataTable <- function(fileName){
msgSet <- readSet(msgSet, "msgSet");
if(length(grep('\\.zip$',fileName,perl=TRUE))>0){
fileName <- unzip(fileName);
if(length(fileName) > 1){
# test if "__MACOSX" or ".DS_Store"
osInx <- grep('MACOSX',fileName,perl=TRUE);
if(length(osInx) > 0){
fileName <- fileName[-osInx];
}
dsInx <- grep('DS_Store',fileName,perl=TRUE);
if(length(dsInx) > 0){
fileName <- fileName[-dsInx];
}
dat.inx <- grep(".[Tt][Xx][Tt]$", fileName);
if(length(dat.inx) != 1){
msgSet$current.msg <- "More than one text files (.txt) found in the zip file.";
return(NULL);
}
}
}
dat <- try(data.table::fread(fileName, header=TRUE, check.names=FALSE, data.table=FALSE));
rm.inx <- apply(dat,2,function(x){all(is.na(x))});
dat <- dat[,!rm.inx];
if(class(dat) == "try-error"){
#try to use "tr" to remove double return characters
trFileName <- paste("tr -d \'\\r\' <", fileName);
dat <- try(data.table::fread(trFileName, header=TRUE, check.names=FALSE, data.table=FALSE));
if(class(dat) == "try-error"){
print("Using slower file reader ...");
formatStr <- substr(fileName, nchar(fileName)-2, nchar(fileName))
if(formatStr == "txt"){
dat <-try(read.table(fileName,header=TRUE,comment.char = "", check.names=F, as.is=T));
}else{ # note, read.csv is more than read.table with sep=","
dat <-try(read.csv(fileName,header=TRUE,comment.char = "", check.names=F, as.is=T));
}
}
}
if(class(dat) == "try-error"){
msgSet$current.msg <- "Failed to read the data table! Please check your data format.";
saveSet(msgSet, "msgSet");
return(NULL);
}
# need to remove potential empty columns
dat <- dat[!sapply(dat, function(x) all(x == "" | is.na(x)))];
return(dat);
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.