【发布时间】:2015-03-05 18:01:10
【问题描述】:
我有一个文件,其中包含 10.00-10.66、20.67-21.33、30.67-31.33 和 40.34-42.00 范围内的数字。
示例输入:
10.21 21.12 10.50 30.80
30.91 31.12 31.00 10.30
21.21 20.99 20.90 31.20
41.71 41.72 10.10 41.80
我想这样转换文件:
10.00-10.20 = 0|0:[DOSE]
10.21-10.66 = .|.:[DOSE]
20.90-21.10 = 1|0:[DOSE]
20.67-20.89 = .|.:[DOSE]
21.11-21.33 = .|.:[DOSE]
30.90-31.10 = 0|1:[DOSE]
30.67-30.89 = .|.:[DOSE]
31.11-31.33 = .|.:[DOSE]
41.80-42.00 = 1|1:[DOSE]
41.34-41.79 = .|.:[DOSE]
示例输出:
.|.:10.21 .|.:21.12 .|.:10.50 .|.:30.80
0|1:30.91 .|.:31.12 0|1:31.00 .|.:10.30
.|.:21.21 1|0:20.99 1|0:20.90 .|.:31.20
.|.:41.71 .|.:41.72 0|0:10.10 1|1:41.80
我可以想办法在 R 中做到这一点,但实际文件大小大约为 1000*5000000 个元素,我认为 R 无法应付!
有没有办法使用 sed 或 awk 等内嵌文本编辑器有条件地替换文件中的所有元素,具体取决于它们的值?欢迎替代方案!
【问题讨论】:
-
可能不是评论的最佳人选,但我不认为它完全重复。