我已經與樣本數據R有一個data.frame
,看起來像這樣的:R:按列排序data.frame和有條件地刪除行
dat <- data.frame(NAME=c("NAME1","NAME1","NAME1","NAME1","NAME2","NAME2","NAME2","NAME2") , SURVEY_YEAR =c(1947,1958,1978,1987,1963,1991,2004,1993), REFERENCE_YEAR=c(1934,1947,1974,1947,1944,1987,1993,1987), VALUE=c(10,15,13,20,-2,7,12,-19))
dat
NAME SURVEY_YEAR REFERENCE_YEAR VALUE
1 NAME1 1947 1934 10
2 NAME1 1958 1947 15
3 NAME1 1978 1974 13
4 NAME1 1987 1947 20
5 NAME2 1963 1944 -2
6 NAME2 1991 1987 7
7 NAME2 2004 1993 12
8 NAME2 1993 1987 -19
我怎麼可能通過REFERENCE_YEAR
首先排它(從低到高):
NAME SURVEY_YEAR REFERENCE_YEAR VALUE
1 NAME1 1947 1934 10
2 NAME1 1958 1947 15
3 NAME1 1987 1947 20
4 NAME1 1978 1974 13
5 NAME2 1963 1944 -2
6 NAME2 1991 1987 7
7 NAME2 1993 1987 -19
8 NAME2 2004 1993 12
然後如果REFERENCE_YEAR
一年是一樣的,刪除從dat
覆蓋更長的時間(從REFERENCE_YEAR
到SURVEY_YEAR
)的一個,然後寫入刪除RO ws變成新的data.frame
?
與樣本數據的data.frame應該是這樣的結尾:
NAME SURVEY_YEAR REFERENCE_YEAR VALUE
1 NAME1 1947 1934 10
2 NAME1 1958 1947 15
3 NAME1 1978 1974 13
4 NAME2 1963 1944 -2
5 NAME2 1991 1987 7
6 NAME2 2004 1993 12
試過你的plyr例子,但是我得到的是一個錯誤,它找不到函數%<%? – kurdtc 2014-09-11 11:36:28
@redshoe我用過'dplyr'。 '%>%'是您使用包的操作符。 – jazzurro 2014-09-11 13:38:55
感謝您的信息!這個作品很棒!即使通過Bonded Dust的解決方案解決了上述問題! – kurdtc 2014-09-11 13:48:22