bran 新手求助各位大佬一个有关数据整理的问题: 我现在有一个data.frame里面有两个变量:ID ,设备号 。然后有一类包含需要用的 .log 格式的数据文件,文件名为 日期_设备号.log ,内容为:时间,分数 。.log格式的文件数量很大。现在希望能将 ID 根据设备号匹配到读取好的 .log 数据文件里。 这里面最不清楚如何实现的一点,就是希望能把 .log 的文件名 日期_设备号.log 中的设备号单独提取出来作为一个变量,并添加到读取好的 .log 文件中。这样就可以用 dplyr 包把 ID 、设备号和.log文件中的信息整合起来了。谢谢各位大佬了。
tctcab 下次提问记得提供样本数据 下面是用正则表达式匹配提取设备号的做法… flist <- c("20010101_abcdedqrerasdf.log", "20010101_zxdfqwera.log") deviceid <- gsub(".*_(.*)\\.log","\\1",flist) deviceid #> [1] "abcdedqrerasdf" "zxdfqwera" Created on 2018-08-02 by the reprex package (v0.2.0.9000).
bran tctcab 感谢大佬,去研究下gsub怎么用了,不懂正则表达式果然还是逃不过要去学习一下的一天? 顺便感谢大佬说的提供样本数据这个事,其实我想了半天怎么提问会比较好理解,还是疏忽了描述一下设备号的格式啦。设备号的确就是个文本数字掺杂的字符串。
tctcab bran 简单解释一下就是 gsub(pattern, replacement,x) 在x里正则匹配pattern,替换为replacement 在这个例子里设备号很好定位,前有下划线后有后缀名,就是括号里的部分。 然后replacement写的是\\1,表示前面正则表达式第一个括号里的内容。