我现在有一个数据框,月和日在不同的列中。 我应该如何编写代码以准确地获取每个月的最后一天?
The data is like:
Month Day
1 1
1 2
1 3
2 1
2 5
谢谢!
答案 0 :(得分:2)
我们可以使用aggregate
aggregate(Day ~Month, df1, FUN = max)
如果已经订购了'月','日'
df1[!duplicated(df1$Month, fromLast = TRUE),]
# Month Day
#3 1 3
#5 2 5
tidyverse
方法
library(tidyverse)
df1 %>%
group_by(Month) %>%
slice(n()) # assumes the 'Day' is ordered
如果未订购“日期”,请获取max
df1 %>%
group_by(Month) %>%
summarise(Day = max(Day))
答案 1 :(得分:1)
library(sqldf)
sqldf("select max(Day),Month from df1 group by Month")
或
library(Hmisc)
summarize(df1$Day,df1$Month,max)