r - 在数据框的值之间添加精确的空间
问题描述
我有一个超过 483 天的数据框,每天我有 84 个值。由于这些数据必须在地下水流模拟软件中读取,因此它还具有相应的应力期和每天的数值量 (84)。
所以这里有一个非常接近真实数据的例子:
Layer Row Column Value1 Flag Value2
-1 -- 3.INCRCH. Stress Period 1
3
1 95 1 11.602 -1 11.602
1 95 2 11.7 -1 11.7
1 95 3 11.82 -1 11.82
-1 -- 3.INCRCH. Stress Period 2
3
1 95 1 11.405 -1 11.405
1 95 2 11.32 -1 11.32
1 95 3 12.1 -1 12.1
其中字符串前面的 -1 是一个标志,表示应该读入这个值,3 是每天的值的数量,在实际数据中为 84。
现在,当我使用 write.table(x) 提取此数据帧时,文本文件中的输出如下所示:
-1 -- 3.INCRCH. Stress Period 1
3
1 95 1 11.602 -1 11.602
1 95 2 11.7 -1 11.7
1 95 3 11.82 -1 11.82
-1 -- 3.INCRCH. Stress Period 2
3
1 95 1 11.405 -1 11.405
1 95 2 11.32 -1 11.32
1 95 3 12.1 -1 12.1
但问题是,该软件对空间敏感,因此每行的数字之间必须有恰到好处的空间,以便软件可以读取数据。
所以所需的文件如下所示:
-1 -- 3. INCRCH. Stress Period 1
3
1 95 1 11.602 -1 11.602
1 95 2 11.7 -1 11.7
1 95 3 11.82 -1 11.82
-1 -- 3. INCRCH. Stress Period 2
3
1 95 1 11.405 -1 11.405
1 95 2 11.32 -1 11.32
1 95 3 12.1 -1 12.1
因此,必须以这种方式精确控制数字之间的空间,以便在软件中读取。我尝试使用 sprintf('%10d%10d%10d%10.1f%10d%5.1f') 进行一些编码,但它仅适用于我尝试过的某些数字,但不适用于我的数据框,即使我只尝试更改一行。我必须使用 write.table 函数提取数据,因为数据文件必须是一种文本编辑器。
我会很感激任何帮助!
解决方案
推荐阅读
- go - 构建 go 项目时,包 io/fs 不在 GOROOT 中
- postgresql - 卷“deployer-conf”的 MountVolume.SetUp 失败:对象“pgo”/“pgo-deployer-cm”未注册
- android - 通过 FirebaseMessegingService 类从后台上传数据到服务器
- c - 使用c中的数组和函数按降序打印年龄
- data-structures - 您如何访问/修改 Haxe 列表中的特定元素?
- javascript - 使用innerHTML时如何防止替换HTML元素?
- angularjs - Angular JS - 计算
- forms - SSRS 2016 表单身份验证与 asp.netcore
- powershell - 如何在文件中导出计算签名?
- python - 用引号将每个元素括在字符串元组中