#csv #logger #trick #word #error #text #entry

app fwdt

Few Word Do Trick (fwdt) 是一个快速的数据记录器,非常高效。进行数据录入的最快且最不易出错的方法。

2 个版本

0.1.1 2022 年 10 月 12 日
0.1.0 2022 年 10 月 10 日

#1979命令行实用工具

无许可证/MIT

695KB
125

alternate text

Few Word Do Trick (fwdt)

Few Word Do Trick (fwdt) 是一个跨平台的通用快速记录器,适用于人类,支持不完整的 csv,以提供更好的数据录入体验。

alternate text


人类数据录入的两条法则

第一条法则:为了防止数据录入错误,永远不要录入数据。

第二条法则:当第一条法则不可行时,只录入更改。


alternate text

个人轶事

人类的数据录入容易出错。我亲身经历过。尽管我没有证据,但我假设普通人无法生成无瑕疵的录入,尤其是在录入的数量增加到更大的数字时。

最近我偶然发现了一个业余无线电数据记录器 fle。这是一种领域特定语言 (DSL),允许通过最小重复来录入数据。这个命令行实用工具在精神上类似,但没有发明自己的业余无线电特定 DSL。它使用不完整的 csv 文件作为数据输入,并输出完整的 csv 文件。

入门指南

将 fl 文件转换为逗号分隔的 csv 文件的命令是

# get the data
wget https://raw.githubusercontent.com/alexhallam/fwdt/main/test/data/radio_log_small.csv
# output the imputed csv file
fwdt -s, test/data/radio_log_small.csv

输出是

date,group,mycall,operator,received,sent,freq,time,call
2022-08-08,cw,wq8R,wq8R,599,599,7.2230,1107,qr3e
2022-08-08,cw,wq8R,wq8R,599,599,7.2230,1113,kn6h
2022-08-08,cw,wq8R,wq8R,599,599,7.2230,1127,ae0bc
2022-08-08,cw,wq8R,wq8R,599,599,7.2230,1207,ae4bc
2022-08-08,cw,wq8R,wq8R,599,599,14.223,1207,qr3e
2022-08-08,cw,wq8R,wq8R,599,599,14.223,1213,kn6h
2022-08-08,cw,wq8R,wq8R,599,599,14.223,1217,a8rat
2022-08-08,cw,wq8R,wq8R,599,599,14.223,1217,ko7rqq

自动更新

我更喜欢立即反馈。可以将 fwdt 的输出通过管道传输到 tidy-viewer。如果使用 entr,则每次保存文件时都可以预览数据更改!

alternate text

find . | entr sh -c 'fwdt -s, radio_log_small.csv | tidy-viewer'

详细信息

假设用户心中已有最终的 dataset。使用 wc -m 字符计数为 453

        date       group mycall operator received sent freq    time call   
     1  2022-08-08 cw    wq8R   wq8R     599      599   7.2230 1107 qr3e   
     2  2022-08-08 cw    wq8R   wq8R     599      599   7.2230 1113 kn6h   
     3  2022-08-08 cw    wq8R   wq8R     599      599   7.2230 1127 ae0bc  
     4  2022-08-08 cw    wq8R   wq8R     599      599   7.2230 1207 ae4bc  
     5  2022-08-08 cw    wq8R   wq8R     599      599  14.223  1207 qr3e   
     6  2022-08-08 cw    wq8R   wq8R     599      599  14.223  1213 kn6h   
     7  2022-08-08 cw    wq8R   wq8R     599      599  14.223  1217 a2rat  
     8  2022-08-08 cw    wq8R   wq8R     599      599  14.223  1217 ko7rqq

如果用户删除重复数据,字符计数可能减少到 187。用户必须录入的数据仅显示如下。我将把这些不完整的 csv 文件称为 快速记录 (fl) 文件。

date,group,mycall,operator,received,sent,freq,time,call 
2022-08-08,cw,wq8R,wq8R,599,599,7.2230,1107,qr3e
1113,kn6h
1127,ae0bc
1207,ae4bc
14.223,1207,qr3e
1213,kn6h
1217,a8rat
1217,ko7rqq

如果将此映射到原始格式,则更容易看到哪些被删除。

        date       group mycall operator received sent freq  time call   
     1  2022-08-08 cw    wq8R   wq8R     599      599   7.22 1107 qr3e   
     2  NA         NA    NA     NA       NA       NA   NA    1113 kn6h   
     3  NA         NA    NA     NA       NA       NA   NA    1127 ae0bc  
     4  NA         NA    NA     NA       NA       NA   NA    1207 ae4bc  
     5  NA         NA    NA     NA       NA       NA   14.2  1207 qr3e   
     6  NA         NA    NA     NA       NA       NA   NA    1213 kn6h   
     7  NA         NA    NA     NA       NA       NA   NA    1217 a8rat  
     8  NA         NA    NA     NA       NA       NA   NA    1217 ko7rqq

如何创建有效的快速记录文件

规则非常简单。

  1. 前两行(列标题和数据的第一行)必须完整。数据的第一行是“母行”。这是当数据不存在时进行未来递归数据推断的基础。
  2. 所有后续行都替换为最右侧的列。(将变化最频繁的列放在右边)。

安装

cargo install fwdt

Scorch

我该如何知道何时使用fl文件而不是csv文件?

Scorch定义为[1 - (fl_word_count/csv_word_count)]。使用页面顶部的示例fl_word_count=187csv_word_count=453,因此1 - (187/453) ~ 59%。这是一个不寻常高的Scorch值。它表示使用fl文件而不是完整的csv文件所节省的文本百分比。即使Scorch较小,5%,这也意味着5%的文本不需要手动输入,因此将是无错误的。

帮助

fwdt 0.1.0
📝🔥 Few Word Do Trick (fwdt) is a fast data logger 📝🔥

    Example Usage:
    fwdt -s, data.csv

USAGE:
    fwdt [FLAGS] [OPTIONS] [FILE]

FLAGS:
    -d, --debug-mode    Print object details to make it easier for the maintainer to find and resolve bugs.
    -h, --help          Prints help information
    -V, --version       Prints version information

OPTIONS:
    -s, --delimiter <delimiter>    The delimiter separating the columns. Example #1 `fwdt -s ' '
                                   test/data/power_lift.csv`. Example #2 `fwdt -s, test/data/radio_log_small.csv`

ARGS:
    <FILE>    Data file to process

依赖项

~7.5MB
~122K SLoC