从R中的txt文件中提取值

时间:2015-11-17 13:28:54

标签: regex r gsub

我的txt文件格式如下:

(4, 'AF', 'AFG', 'Afghanistan'),
(248, 'AX', 'ALA', 'Aland Islands'),
               .
               .
               .

我想提取数字和国家/地区。我的想法是使用gsub"[^0-9]"来查找数字,例如tail(strsplit())来提取最后一个单词,不安全后我删除了所有特殊字符。有更快的方法吗?

数据:

structure(list(V1 = c("(4, 'AF', 'AFG', 'Afghanistan'),", "(248, 'AX', 'ALA', 'Aland Islands'),", 
"(8, 'AL', 'ALB', 'Albania'),", "(12, 'DZ', 'DZA', 'Algeria'),", 
"(16, 'AS', 'ASM', 'American Samoa'),", "(20, 'AD', 'AND', 'Andorra'),"
)), .Names = "V1", row.names = c(NA, 6L), class = "data.frame")

1 个答案:

答案 0 :(得分:0)

如果您的data.frame被称为regex,则可以使用sub("^\\((\\d+).*", "\\1", df$V1) #[1] "4" "248" "8" "12" "16" "20"

获取第一个号码:

sub("[^a-z]+([A-Z][a-z A-Z]+).+", "\\1", df$V1)
#[1] "Afghanistan"    "Aland Islands"  "Albania"        "Algeria"        "American Samoa" "Andorra"

获取国家:

error message = 'file exists'