【发布时间】:2018-04-13 19:34:17
【问题描述】:
我在excel 大文件中有德国人口数据集,我只对德国地区的 NUTS3 级人口感兴趣,这是eurostat 提供的更具体的文件:NUTS classification。但是,基于NUTS3 规范,我打算提取具有特定模式的行。特别是,我需要提取其country_code 像de+ 计算任何三个数字或计算任何三个数字和字符组合的行。
这是最小的可重现示例:
structure(list(code=c(de1,de11,de111,de112,de11a,de11b,de12,de121,de27c,de3,
de4,de41,de411,de94h,dea,dea1,dea11,dea12,dec,Dec-01,Dec-06,
dee,dee01,dee02,dee0a,dee0b,dee0c),
region_name=c(Baden-Württemberg,Stuttgart,Stuttgart-Stadtkreis,Böblingen,
Schwäbisch Hall,Main-Tauber-Kreis,Karlsruhe,Baden-Baden- Stadtkreis,
Unterallgäu,Berlin,Brandenburg,Brandenburg - Nordost,
Frankfurt (Oder)- Kreisfreie Stadt,Wittmund,Nordrhein-Westfalen,
Düsseldorf,Düsseldorf- Kreisfreie Stadt,Duisburg- Kreisfreie Stadt,
Saarland,Saarbrücken- Stadtverband,Sankt Wendel,Sachsen-Anhalt,
Dessau-Roßlau- Kreisfreie Stadt,Halle (Saale)- Kreisfreie Stadt,
Mansfeld-Südharz,Saalekreis,Salzland),
pop_1980=c(2981,9131,3438,576,149,120,2368,49,114,...,...,...,...,53,16905,5178,589,
555,1063,364,90,...,...,...,...,...,...),
pop_1981=c(1981,9172,3450,576,149,120,2380,49,114,...,...,...,...,53,16910,5170,585,
553,1060,363,90,...,...,...,...,...,...,)))
这是我想要的输出(只是手动剪辑):
更新:
在原始数据中,缺失值用...填充,我希望过滤后的data.frame将相应的...替换为NAN或NULL。
对于country_code 列中的相应模式,如何提取de+ 计算三个数字或同时计算数字和字符的行?如何在 R 中轻松实现这一点?有什么想法吗?
【问题讨论】:
-
答案应该对您问题的本质有所帮助,但请注意数据示例不起作用。所有的引号都不见了。当
dec01之类的东西变成类似日期的东西Dec-01时,您的一些记录可能会被弄乱(通过Excel?)。所以你需要以某种方式照顾它。 -
@ngm 感谢您的帮助。