我的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")
答案 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'