r语言 - 如何将以':'分隔的数字范围强制放入该范围内的数字列表中?



我有一个字符列表,这些字符要么是数字(例如19(,要么是数字范围(例如20:25(。我想将这个字符列表强制为整数,但当我使用as.integer((强制这个列表时,范围被强制为NA。如何让R强制格式化为字符的数字范围成为整数?

FAOCODES
[1] "15"      "27"      "56"      "44"      "79"      "79"      "83"      "68"      "71"      "75"      "89"      "92"      "94"      "97"      "101"    
[16] "103"     "108"     "116"     "122"     "137"     "125"     "135"     "136"     "149"     "176"     "191"     "195"     "197"     "201"     "181"    
[31] "187"     "203"     "205"     "210"     "211"     "236"     "242"     "249"     "254"     "267"     "270"     "292"     "289"     "260:310" "312:339"
[46] "156"     "157"     "328"     "773:821" "656"     "656"     "661"     "667"     "826"     "486"     "489"     "490:512" "567:591" "600:603" "515:560"
[61] "592"     "619"     "358:463" "161"     "216:234" "671"     "677:839"
> as.integer(FAOCODES)
[1]  15  27  56  44  79  79  83  68  71  75  89  92  94  97 101 103 108 116 122 137 125 135 136 149 176 191 195 197 201 181 187 203 205 210 211 236 242
[38] 249 254 267 270 292 289  NA  NA 156 157 328  NA 656 656 661 667 826 486 489  NA  NA  NA  NA 592 619  NA 161  NA 671  NA
Warning message:
NAs introduced by coercion

感谢您的入住!

感谢Ben,他指出了一个类似的问题:

unlist(lapply(unlist(strsplit(FAOCODES, ",")), function(x) eval(parse(text = x))))

最新更新