【发布时间】:2020-09-23 21:11:24
【问题描述】:
在 R 中使用 stringr 包来执行字符串替换。文本文件有 2 个标题,第 1 行标题和第 2 行子标题。我使用 read_lines(n_max=1) 获取一行并使用 skip=n 定位到下一行。我需要一个正确的正则表达式或模式来保留数字数据(和日期数据),同时替换“|”只能用逗号“,”。
dat_subheader <- read_lines("1999-0.txt", skip=1, n_max=1)
dat_row1 <- read_lines("1999-0.txt", skip=2, n_max=1)
[1] "# XD|A Code|S Code|C Code|Site ID|Parameter|POC|Sample Duration|Unit|Method|Date|Start Time|Sample Value|Null Data Code|Sampling Frequency|Monitor Protocol (MP) ID|Qualifier - 1|Qualifier - 2|Qualifier - 3|Qualifier - 4|Qualifier - 5|Qualifier - 6|Qualifier - 7|Qualifier - 8|Qualifier - 9|Qualifier - 10|Alternate Method|Uncertain"
[1] "# XC|A Code|S Code|C Code|Site ID|Parameter|POC|Unit|Method|Year|Period|Number of Samples|Composite Type|Sample Value|Monitor Protocol (MP) ID|Qualifier - 1|Qualifier - 2|Qualifier - 3|Qualifier - 4|Qualifier - 5|Qualifier - 6|Qualifier - 7|Qualifier - 8|Qualifier - 9|Qualifier - 10|Alternate Method |Uncertain"
数据内容列表:
[1] "XD|I|01|027|0001|88101|1|7|105|120|19990103|00:00||AS|3|||||||||||||"
现在使用函数 str_replace_all 来尝试替换所有出现的“|”为逗号“,”。我的 str_replce_all() 就这样设置好了:
str_replace_all(dat_row1, "|", ",")
但结果甚至用逗号“,”替换了数字数据和日期。我知道我错过了这个替换的正确模式,需要一些有用的想法。竖线“|”仅用作分隔符,只需将此分隔符更改为逗号“,”。非常感谢您在正确方向上的帮助。
结果显示替换不正确。
[1] ",X,D,|,I,|,0,1,|,0,2,7,|,0,0,0,1,|,8,8,1,0,1,|,1,|,7,|,1,0,5,|,1,2,0,|,1,9,9,9,0,1,0,3,|,0,0,:,0,0,|,|,A,S,|,3,|,|,|,|,|,|,|,|,|,|,|,|,|,"
【问题讨论】: