我有一个水质数据的数据集,其中包含日期,结果,参数,R中的站点。我正在尝试提取每个站点采样的第一个和最后一个日期,该站点将占用两个新列。我的数据框。我还有月,日和年的列。
以下是结构:
'data.frame': 50954 obs. of 8 variables:
$ Date : chr "6/9/2016" "6/9/2016" "6/8/2016" "6/8/2016" ...
$ Result : num 400 160 2200 260 660 550 2100 270 750 82 ...
$ Units : chr "M" "M" "M" "M" ...
"Fecal coliforms" ...
$ Station : chr "RIO GRANDE DE MANATI AT HWY 2 NR MANATI, PR" "RIO GRANDEE DE MANATI AT HWY 2 NR MANATI, PR" "RIO CAONILLAS NR JAYUYA, PR"
"RIO CAONILLAS NR JAYUYA, PR" ...
$ month : num 6 6 6 6 6 6 6 6 6 6 ...
$ year : num 2016 2016 2016 2016 2016 ...
$ day : num 9 9 8 8 8 8 7 7 7 7 ...
我一直这样做是为了提取电台的摘要统计数据:
P303.split <- split(P303, Parameter)
Copper = P303.split$'Copper'
CopperSumStats = data.frame(do.call("rbind", by(Copper[, "Result"], Copper[,"Station"], summary)))
所以现在只需要开始和结束日期......提前致谢!
答案 0 :(得分:1)
我认为您可以使用dplyr
来执行所需的计算:
library(dplyr) #load package
df1$Date <- as.Date(df1$Date, format = "%d/%m/%Y") #format date
#data manipulation
df1 %>%
group_by(Station) %>%
mutate(FirstDate = min(Date), LastDate = max(Date)) -> df2
此解决方案假设您的数据位于名为data.frame
的{{1}}。