我正在州一级进行 D3 映射。这是我在数据处理中遇到的一个问题。比如地图数据是这样的,(dat1.ndjson)
{state: a, code: aa}
{state: b, code: bb}
{state: c, code: cc}
但通常我们掌握的信息并不完整,比如南极洲通常没有信息,但我们在测绘时仍然需要绘制它的轮廓。信息数据就像,(dat2.ndjson)
{state: a, code: aa, count: 1}
{state: b, code: bb, count: 2}
因此,当我尝试对这两个数据进行左连接时,它将返回 (dat3.ndjson)
[{state: a, code: aa},{state: a, code: aa, count: 1}]
[{state: b, code: bb},{state: b, code: bb, count: 2}]
[{state: c, code: cc},null]
这是由
ndjson-join --left 'd.code' dat1.ndjson dat2.ndjson < merge.ndjson
目的是把这个'count'信息连接到map数据上,所以通常我会先在dat1.ndjson中给所有的item赋一个count=0,像这样,(dat11.ndjson)
{state: a, code: aa, count: 0}
{state: b, code: bb, count: 0}
{state: c, code: cc, count: 0}
然后像我之前展示的那样使用这个左连接方法来得到这样的东西,(dat33.ndjson)
[{state: a, code: aa, count: 0},{state: a, code: aa, count: 1}]
[{state: b, code: bb, count: 0},{state: b, code: bb, count: 2}]
[{state: c, code: cc, count: 0},null]
但问题来了。如果我使用以下命令将所有值相加,则会由于第三行中的 null 而返回错误。
ndjson-map '{state: d[0].state, code: d[0].code, count: d[0].count +
d[1].count}' < dat33.ndjson > merge.ndjson
现在我必须在 R 中进行此数据处理,这需要花费大量时间,因为我需要在 .ndjson 和 .csv 之间进行转换。所以我正在寻找一种更好的方法来做到这一点。我认为可能有一些方法可以使用“ndjson-cli”、“jq”或“awk”和“sed”等。
有人有想法吗?谢谢!:)
E.