Tag: data.table

用fread导入excel表

在.xlsx数据中,我有多个表单。 如果我想通过data.table::fread导入第二张纸,我该怎么办? 正常情况下,读取第一张表的代码是: dt <- data.table::fread("data.xlsx", header = T) 这里是data.table::fread用法: fread(input, sep="auto", sep2="auto", nrows=-1L, header="auto", na.strings="NA", file, stringsAsFactors=FALSE, verbose=getOption("datatable.verbose"), autostart=1L, skip=0L, select=NULL, drop=NULL, colClasses=NULL, integer64=getOption("datatable.integer64"), # default: "integer64" dec=if (sep!=".") "." else ",", col.names, check.names=FALSE, encoding="unknown", quote="\"", strip.white=TRUE, fill=FALSE, blank.lines.skip=FALSE, key=NULL, showProgress=getOption("datatable.showProgress"), # default: TRUE data.table=getOption("datatable.fread.datatable") # default: TRUE ) 我知道package readxl可以导入特定的表单, dt <- readxl::read_excel("data.xlsx", […]

用R头写入.xlsx

是否有可能写一个双头的.xlsx data.frame / data.table? 我的数据包含数字,date和string列。 请在下面find一个例子。 example <- data.frame(Number=c(1:5), Date=as.Date('1999-10-31','1999-10-31','1999-10-31','1999-10-31','1999-10-31','1999-10-31'), String=LETTERS[1:5]) 说,我想有一个双数字头,数字是“一”,date是“两”,string是“三”。 但显然我不能把他们放在第1行,因为他们的第二列名是string,有些列是date/数字。 任何想法呢? @编辑:例如: example <- data.frame(Number=c("One",as.character(1:5)), Date=c("Two",'1999-10-31','1999-10-31','1999-10-31','1999-10-31','1999-10-31'), String=c("Three",LETTERS[1:5])) Number Date String 1 One Two Three 2 1 1999-10-31 A 3 2 1999-10-31 B 4 3 1999-10-31 C 5 4 1999-10-31 D 6 5 1999-10-31 E 但现在显然所有的列都是string…我需要它们作为特定字段的数字和date。 谢谢。

将表示各种格式化date的string列转换为date列

我正在寻找一种有效的方法来将数据表中的一列string转换为date列,条件是这些string可以是三种date格式之一 – 数字,%Y-%m-%d, %米/%d /%Y。 下面说明一个假设的函数datefun将如何performance: library(data.table) dt <- data.table( my_dates = c('42292.7894','2014-06-22','11/25/2011','33661', NA)) datefun(dt$my_dates) [1] "2015-10-15" "2014-06-22" "2011-11-25" "1992-02-27" NA 这与将string的格式知识应用为每个string的date相同。 l <- dt$my_dates c( as.Date(as.numeric(l[1]), origin = "1899-12-30"), as.Date(l[2],'%Y-%m-%d'), as.Date(l[3],'%m/%d/%Y'), as.Date(as.numeric(l[4]), origin = "1899-12-30"), as.Date(l[5])) [1] "2015-10-15" "2014-06-22" "2011-11-25" "1992-02-27" NA 我试图直接从Excel中没有被格式化一致的数据。

R data.table fread从剪贴板

我想创build一个接口excel-R :: data.table。 我想问一下如何在剪贴板中使用fread函数。 下面的代码运行良好,但我宁愿使用fread而不是read.table(在excel文件中复制一些表并在R中运行上面的命令): data.table(read.table("clipboard",sep="\t",header=TRUE)) 我试图声明连接到剪贴板,但迄今不能得到它的工作。 同样如fread函数文档中所述,它将会改变,有些东西可能会被弃用,所以最好有一个解决scheme,这个解决scheme在不久的将来不会被弃用。 剪贴板/ fread是否有任何限制? 像65000行,还是其他一些内存限制? 我也想build议扩展data.table :: fread函数接受“剪贴板”连接默认,因为它是目前与read.table工程。 谢谢