我需要生成一个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时出现双引号的字符“。
我的实际数据框有很多列,需要不同的小数位数,以及需要双引号的字符,所以我无法应用系统范围的更改。
答案 0 :(得分:6)
比执行quote=FALSE
更好的选择是实际指定要引用的列,因为quote
参数可以是您想要引用的列索引的向量。 E.g。
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.100