【发布时间】:2018-04-08 17:08:34
【问题描述】:
我们从数据记录器中以 .txt 文件的形式获取地下水深度数据。此数据的格式不可更改。除了第一个列名包含井号外,它具有一致的列名。对于每口井,数据都是结构化的:
"well 02,Time,Current(feet),Serial Number
1,2018-02-11 11:18:44,-5.00,020013603
2,2018-02-11 17:18:44,7.30
3,2018-02-11 23:18:44,5.40
4,2018-02-12 05:18:44,0.80
5,2018-02-12 11:18:44,12.60... "
"Well 17,Time,Current(feet),Serial Number
1,2018-02-11 00:32:01,-5.00,000025390
2,2018-02-11 06:32:01,5.45
3,2018-02-11 12:32:01,5.40
4,2018-02-11 18:32:01,5.40..."
我正在尝试创建一个脚本,将多个 csv .txt 文件合并到一个长数据框中。我只需要这些文件中的第 2 列和第 3 列。我还需要添加一个 id 列,指出观察来自哪个井。最后,我希望有一个 3xn df,colnames = well_id, obs_date,observation
请注意,文件名还包含井号。
到目前为止...
txt_list <- list.files(pattern = ".txt", full.names = TRUE)
txt_read_csv <- map(txt_list,read_csv, col_names = TRUE, col_types = "iTdc")
...给我一个小标题列表。但我无法弄清楚如何在列表中选择和改变小标题以减少列并分配 ID。我尝试了 map_df,但由于每个 .txt 中的第一列名称不同,因此 df 会爆炸成一个宽表,每个不同的 colname 都有多个列。
我可以通过循环来做到这一点,但我真的很想保持整洁。
【问题讨论】:
-
解决了吗?