我需要生成一个每列具有不同小数位数的dataframe或data.table。
例如:
Scale Status
1.874521 1需要在CSV中打印为:
Scale, Status
1.874521, 1.000这必须是一个数字值,因为我已经尝试过format(DF$status, digits=3)和as.numeric(format(DF$status, digits=3)),但是这会将其转换为在导出到CSV时具有双引号的字符“。
我的实际dataframe有许多列,需要不同数量的小数位,以及需要双引号的字符,所以我不能应用系统范围的更改。
发布于 2013-06-14 03:02:35
与执行quote=FALSE相比,更好的选择是实际指定要引用的列,因为quote参数可以是要引用的列索引的向量。例如。
d = data.table(a = c("a", "b"), b = c(1.234, 1.345), c = c(1, 2.1))
d[, b := format(b, digits = 2)]
d[, c := format(c, nsmall = 3)]
d
# a b c
#1: a 1.2 1.000
#2: b 1.3 2.100
write.csv(d, 'file.csv', quote = c(1,2), row.names = F)
#file.csv:
#"a","b","c"
#"a","1.2",1.000
#"b","1.3",2.100https://stackoverflow.com/questions/17093416
复制相似问题