2017-08-24 61 views
0

我對R很新,所以只需要忍耐一下。根據行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做到這一點?提前致謝。

回答

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 

基於@改性活生物體的意見,並在OP的帖子更新作爲邏輯條件,我們可以創建多個數據集一個listsplit

lst <- split(df1, substring(df1$NUM, nchar(df1$NUM))) 
+0

工程就像一個魅力。謝了哥們。 – Rowen

+0

@Rowen感謝您的評論。您可能還會檢查[here](https://stackoverflow.com/help/someone-answers) – akrun

+2

要返回data.frames的命名列表,每個data.frames都有單獨的結尾數字...'split(dat,substring(dat $ NUM,nchar(dat $ NUM)))'。 – lmo

1

我們可以用01使用dplyrfilter()在一起來提取具有以0結尾的值的NUM的行。

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