我想在data.table中向csv文件写入数字时禁用科学记数法.我可以write.csv
使用options(scipen = 999)
但不能使用fwrite
.例:
require(data.table)
dt <- data.table("ID" = c("A", "B", "C", "D"), VALUE = c(0.0000001, 0.1234567, 1000000, 1234567))
options(scipen = 999)
write.csv(dt, row.names = FALSE)
# "ID","VALUE"
# "A",0.0000001
# "B",0.1234567
# "C",1000000
# "D",1234567
fwrite(dt, row.names = FALSE)
# ID,VALUE
# A,1e-07
# B,0.1234567
# C,1e+06
# D,1234567
Run Code Online (Sandbox Code Playgroud)
我希望fwrite中的A行和C行写在write.csv中.我正在使用data.table版本1.10.0.你知道怎么做吗?
我在画面中有两个数据源(A和B).关系是1:n.表A(主表),列ID(主键),字段1,字段2 .... 表B列ID(不是PK),字段X,字段Y.
我想使用表B进行字段X和字段Y的过滤,然后使用表A中的相关表格绘图数据,其中SQL中的过滤器等效于WHERE A.ID IN(SELECT B.ID FROM TableB B)其中表B已经被字段X和字段Y的值过滤掉了.
经过一些研究,我找到了两个不能说服我的选择:
选项1:在两个表之间使用公共内部联接,然后对表A的度量使用AVG和COUNT DISTINCT等聚合函数以避免重复.
选项2:根据从Tableau发送的参数在表A上使用自定义SQL,并在数据库级别过滤表A.
最佳选择是在以下结构中的源之间进行连接
SELECT A.*FROM tableA INNER JOIN(从表B中选择DISTINCT ID)字段X IN(从Tableau动态选择)和字段Y IN(从Tableau动态选择)B ON A.ID = B.ID
这样的事可能吗?
谢谢!!