从R中的txt文件中提取值

Exctracting values from txt file in R

我有以下格式的 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")

如果您的 data.frame 被称为 df,这里有一个使用 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"