根据行R的最后一个值提取行

时间:2017-08-24 12:18:13

标签: r dataframe

我对R很新,所以请耐心等待。

我有一个数据帧df:

ID,NUM,REV,HRY
1221838,2556200,17396.979,L
9677461,5562000,0.000,L
9636801,5562215,0.000,L
9713221,5562222,25739.479,L

我想提取那些NUM值以0结尾的行。类似于1,2,.. 9。

在这种情况下,NUM值以0结尾的记录的输出将为df_out

ID,NUM,REV,HRY
1221838,2556200,17396.979,L
9677461,5562000,0.000,L

在R中有没有办法做到这一点?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我们可以使用substring来获取subset

中用作逻辑条件的最后一位数字
subset(df1, substring(NUM, nchar(NUM))==0)
#        ID     NUM      REV HRY
#1 1221838 2556200 17396.98   L
#2 9677461 5562000     0.00   L

基于@ lmo的评论以及OP帖子中的更新,我们可以在list中使用split

创建多个数据集
lst <- split(df1, substring(df1$NUM, nchar(df1$NUM)))

答案 1 :(得分:1)

我们可以将dplyr&#39; filter()grepl()一起使用,以提取NUM,其值以0结尾。

df_out <- df %>% filter(grepl('0$',NUM))
df_out
#        ID     NUM      REV HRY
# 1 1221838 2556200 17396.98   L
# 2 9677461 5562000     0.00   L