|
1
4
你可以使用
以这种导入策略留下的长格式处理这些数据可能更容易。如果你想每天都有一列,你可以通过改变数据的形状来实现。
编辑:
结果是
|
|
2
4
该问题的显著特征是:
读取此文件并将标题信息与详细信息对齐的最直接方法是利用文本处理来重塑文件,使其每个记录包含一个观察值。一旦对原始数据进行了重塑,就可以使用
所需的转换可以在base R中通过以下组合完成
。。。和输出:
这种方法还避免了为了将标题记录与正确数量的细节记录合并而必须跟踪每天的观察次数。 更新:提高解决方案的性能根据对此答案的评论,脚本需要相当长的时间才能针对OP中引用的完整数据执行。原始数据文件有407705行:365条标题记录和407340条详细记录。上述解决方案将数据转换并在约155秒内加载到MacBook Pro上的数据框中,配置如下。
性能缓慢的原因与向该职位提供的其他答案相比,有两个潜在的缓慢来源,包括:
性能优化我们通过以下方式调整代码以提高其性能。
更新后的版本运行大约23秒,比原来的版本有了很大的改进。下面列出了修改后的代码和性能时间。
最后一次优化OP的另一个答案是检查记录的第一列是否为空,以确定该记录是标题记录还是详细记录。在我的帖子顶部,我注意到,由于经度可能在小数点前有3位数字,所以这种技术是有风险的。 然而,事实证明,这些数据的经度不超过本初子午线以东或以西100度,因此我们可以使用以下代码改进脚本的运行时性能。
正如我们从性能计时中看到的,替换
|
|
|
T K · 在第一列中添加具有特定值的新行,然后在其余列中添加“-” 3 年前 |
|
HoelR · 每N列将数据帧拆分为多个 3 年前 |
|
|
bandcar · R:只保留值与另一列中的值不同的行 4 年前 |
|
|
stats_noob · R:R中有“非字符”命令吗? 4 年前 |
|
|
cliu · 根据R中连续几天的顺序分配ID 4 年前 |
|
|
goatstash · 从字符串数组中剪切第一个单词并存储在新变量中 4 年前 |
|
|
mr.bjerre · 展开R中数据表中组内的最后观察值 7 年前 |