У меня есть кадр данных по адресам и датам продажи. Есть несколько записей некоторых адресов. Я хочу, чтобы новый кадр данных имел каждый адрес только один раз и для того, чтобы этот адрес был выбран по самой последней дате. Вот фрагмент кадра данных.R выбрать из фрейма данных: по дате с повторными коэффициентами
df <-structure(list(address = c("2", "316", "647", "6904", "# 5 BENT TREE DR", "# 62 62000 E 440 PL", "# 7 BENT TREE DR", "#1 ARROWHEAD RD", "#1 ECHO DR", "#1 JACKS HIDEAWAY", "#1 JACKS HIDEAWAY", "#1 MARINA DR", "#1 WHITE CHAPEL", "#10 JACKS HIDEAWAY", "#10 PRIVATEER", "#10 SUMMERSIDE", "#102 THE MOORS", "#103 MOORS VIEW", "#108 THE MOORS", "#111 THE MOORS", "#112 THE MOORS", "#116 THE MOORS", "#12 DOGWOOD HOLLOW", "#12 MAINSTAY", "#120 THE MOORS", "#13 DOGWOOD HOLLOW", "#13 MEGHAN COVES", "#14 BEACON HILL", "#14 GRAND JEST", "#14 GRAND JEST"), sold = structure(c(13521, 11373, 13413, 14372, 15044, 14056, 15044, 12712, 12671, 12524, 11071, 11856, 11670, 11754, 12251, 11829, 11465, 12600, 11271, 11624, 11831, 11276, 12724, 14040, 11100, 12678, 12174, 12293, 14546, 11430), class = "Date")), .Names = c("address", "sold"), class = "data.frame", row.names = c(NA, 30L))
df
Например, если
address date
123 Main St 2002-03-01
123 Main St 2005-01-01
Я просто хочу, 2005 датированную линии 123 Main St в новом кадре данных.
Я попробовал некоторые функции из dplyr
library(plyr)
library(dplyr)
> df %>% group_by(address) %>% max(df$sold)
Error in FUN(X[[i]], ...) :
only defined on a data frame with all numeric variables
> df %>% group_by(address) %>% max(as.numeric(.(sold)))
Error in function_list[[k]](value) :
(list) object cannot be coerced to type 'double'
> ddply(df, .(address), max(.(sold)))
Error in max(.(sold)) : invalid 'type' (list) of argument
Я не знаю, что делать здесь и хотел бы помочь, чтобы придумать способ, чтобы выбрать для нового кадра данных.
Я ценю ваш полный список опций. Отлично. – shea