有没有一种方法可以让
我有一些数字数据,主要数据下面有一些注释。当我使用
以下是一个例子
fread
模仿read.table
的行为,通过读取数据来设置变量的类型。我有一些数字数据,主要数据下面有一些注释。当我使用
fread
读取数据时,列被转换为字符型。然而,通过在read.table
中设置nrow
,我可以阻止这种行为。在fread中是否也可能实现这一点。(我不想修改原始数据或制作修订副本)。谢谢以下是一个例子
d <- data.frame(x=c(1:100, NA, NA, "fff"), y=c(1:100, NA,NA,NA))
write.csv(d, "test.csv", row.names=F)
in_d <- read.csv("test.csv", nrow=100, header=T)
in_dt <- data.table::fread("test.csv", nrow=100)
这会产生
> str(in_d)
'data.frame': 100 obs. of 2 variables:
$ x: int 1 2 3 4 5 6 7 8 9 10 ...
$ y: int 1 2 3 4 5 6 7 8 9 10 ...
> str(in_dt)
Classes ‘data.table’ and 'data.frame': 100 obs. of 2 variables:
$ x: chr "1" "2" "3" "4" ...
$ y: int 1 2 3 4 5 6 7 8 9 10 ...
- attr(*, ".internal.selfref")=<externalptr>
作为一种解决方法,我想使用read.table
读取一行数据,获取类别并设置colClasses
,但是我的理解有误。
cl <- read.csv("test.csv", nrow=1, header=T)
cols <- unname(sapply(cl, class))
in_dt <- data.table::fread("test.csv", nrow=100, colClasses=cols)
str(in_dt)
使用 Windows 8.1 操作系统,R 版本为 3.1.2(发布于2014年10月31日),平台为 x86_64-w64-mingw32/x64(64位)。
.SDcols
设置为适当的向量,然后像这样:DT[, .SD := lapply(.SDcols, as.numeric), .SDcols=vec]
。我不是DT用户,但我相信一定有某种最小输入法的方法,并且我怀疑你可以在SO答案中找到它的示例。 - IRTFM#
)开头。当我们将其添加到您的注释文本中时,使用read.csv
可以得到正确的行为(但不是fread
)。是的,fread
可能需要改进。同时需要一个解决方法。 - smciread.csv(nrow)
接受它并正确推断类型。 - smci