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