我的部分数据采用以下格式:
Year Persons
1: 2014 69
2: 2013 76
3: 2013 couldn't come 3
4: 2012 48
5: 2011 57
6: 1
如您所见,Year
列中的数据不干净。当我想从2011年到2014年选择年份的行时,以下代码有效:
DF[Year %in% c("2014", "2013", "2012", "2011") ]
选择一年的范围:
DF[Year >= 2011 and Year <= 2014] # This won't filter out the row like `2013 couldn't come`.
如果我们选择所有常规年份(用其他文本除去年份,以及空白年份),我想我可以使用正则表达式:
DF[ Year == '[0-9]{4}',] # doesn't work.
然而,它不起作用。如何在data.table
中使用正则表达式?
答案 0 :(得分:3)
如果你真的只想做#1&amp; #2并没有清理数据:
dat[grepl("^201[1-4]$", Year)]
答案 1 :(得分:2)
你可以抽出几年:
operator+=