r - data.table 中的 fwrite 将我的字符串列更改为整数,如何修复?

标签 r data.table

我正在使用 fwrite 将数据表写入 csv。该函数将一列的类从字符更改为整数,并删除了起始零,这是我不想要的。所以我的 var2 是字符,我想通过 fwrite 保留它,然后 fread 一个子集。

但是,我得到的是以下内容:

head(DT)
var1 var2
 1  "0012"
 2  "0032"
 3  "0043" 

DT1 <- DT[var1!=2,]

fwrite(DT1,"DT1.csv", row.names=FALSE)

然后:

DT1 <- fread("DT1.csv")
head(DT1)
var1 var2
 1    12
 3    43 

有什么办法可以解决吗?

最佳答案

问题出在 fread 而不是 fwrite。因此,只需指定 var2 是一个 character 类即可。 fread 中的默认值是检测到 var2 是一个 numeric 列,因此只需在对 fread 的调用中添加以下内容即可:

DT1<-fread("DT1.csv", colClasses = list(character=c("var2")))

请告诉我这是否适合您,祝你好运!

关于r - data.table 中的 fwrite 将我的字符串列更改为整数,如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245205/

相关文章:

r - 更高效地使用 fasttime

r - 对 data.table 中分组所得的每个矩阵求和

R 将聚合季度 data.table 合并到双边年度 data.table,同时扩展每个 i 的季度维度

r - 如何在不同的子集上使用 data.table 的 j 创建多个新列

r - 如何抑制(不打印)行号?

r - 每个值每年的百分比

使用 bash 脚本运行 R 命令

r - 平衡(为每个人创建相同数量的行)数据

r - 使用 Rselenium 在下拉框中选择选项

r - 如何以一种好的方式可视化数据框?