Ошибка в программировании R для больших наборов данных - PullRequest
0 голосов
/ 29 октября 2018

Я свернул приведенный ниже фрейм данных на основе цены за единицу

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...