Я свернул приведенный ниже фрейм данных на основе цены за единицу
Material Unit Price Document.Date
500 4.28 2017-08-18
500 5.00 2018-06-07
Я использовал код как
library(data.table)
Data$newdate<-strptime(Data$Document.Date,format="%m/%d/%Y")
df_orig <- as.data.table(Data)
d=df_orig[ , newdate := as.Date(newdate,format="%m/%d/%Y")][order(newdate)]
e=d[, .(newvar = paste(Unit Price, collapse="/")), by=.(Material)]
e$newvar1=gsub("[/]"," > ",e$newvar) #to replace "/" with " > "
e$newvar=NULL
e$newvar2=sapply(str_extract_all(gsub("\\b(\\d+\\.\\d+)(?:\\s+>\\s+\\1\\b)+", "\\1", e$newvar1), "\\d+\\.\\d+"), paste, collapse=" > ")
e$newvar1=NULL
Я получаю вывод, как ожидалось, как
Material newvar2
500 4.28 > 5
Но если в больших наборах данных есть одинаковые значения, я получаю вывод ниже (для того же кода). То есть 5 отсутствует. Могу ли я знать, почему?
Material newvar2
500 4.28