Игнорировать дубликаты между фреймами данных при запуске функции r - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть список фреймов данных, которые я использую для запуска функции.Это работает просто отлично.В последней части этого процесса выясняется, как игнорировать дубликаты на основе одного столбца, когда функция запускается и заполняет все кадры данных.См. Ниже для получения дополнительной информации, я чувствую, что я близко, но я не уверен, как вписаться в то, что мне нужно.

Код, не пытаясь игнорировать дубликаты, который прекрасно работает:

df_list <- by(car, car$User, function(unique) unique)

yourFun <- function(df) {
  df <- anti_join(awip,df, by = "Warranty.Claim")
  df <- subset(awip, Claim.Queue %in% df$Claim.Queue)%>%arrange(Sub.Dt) %>% slice(tail(row_number(),150))
  return(df) 
}


newList <- lapply(df_list, yourFun)

for (df_name in names(newList))
  newList[[df_name]][["User"]] <- df_name
df <- do.call(rbind, newList)
rownames(df) <- NULL

lagavulin <- do.call(rbind, newList)

Одна попытка игнорировать дубликаты между awip и списком:

df_list <- by(car, car$User, function(unique) unique)

yourFun <- function(df) {
  df <- anti_join(df,awip, by = "Warranty.Claim")
  df <- subset(awip, Claim.Queue %in% df$Claim.Queue)%>%arrange(Sub.Dt) %>% slice(tail(row_number(),150))
  return(df) 
}


newList <- lapply(df_list, yourFun)

for (df_name in names(newList))
  newList[[df_name]][["User"]] <- df_name
df <- do.call(rbind, newList)
rownames(df) <- NULL

lagavulin <- do.call(rbind, newList)

выдает ошибку:

Error in `[[<-.data.frame`(`*tmp*`, "User", value = "Barbara") : 
  replacement has 1 row, data has 0

Я пробовал несколько других комбинаций anti_join в строке подмножества, но это нетоже не работает.Что мне нужно сделать, так это игнорировать записи в столбце Warranty.Claim, которые были добавлены в список df и также существуют в awip.Как только это будет сделано, я стану золотым.

Небольшое количество выборочных данных:

Вот то, что изначально заполняло списки, разделенные пользователем:

User    Claim Queue
Gibson Jones    1
Gibson Jones    2
Gibson Jones    3
Gibson Jones    4
Cheri Smith     5
Cheri Smith     6
Cheri Smith     7
Cheri Smith     8
Cheri Smith     9
Cindi Carlton   10
Cindi Carlton   11
Cindi Carlton   12


Here is a small sample of the dataset I am subsetting (awip) and slicing to match with each data frame in the list based on Claim Queue:


```Warranty Claim   Claim Queue Sub Dt
998956          1           9/10/2019 0:00
566231654       2           9/9/2019 0:00
454123215       3           9/11/2019 0:00
25651           4           9/12/2019 0:00
54564211        5           9/11/2019 0:00
545645611       6           9/11/2019 0:00
515115656       7           9/9/2019 0:00
51561561561     8           9/12/2019 0:00
61156156156     9           9/26/2019 0:00
55456           10          9/26/2019 0:00
545645645       11          9/26/2019 0:00
44565456        12          9/26/2019 0:00
998956          1           9/10/2019 0:00
566231654       2           9/9/2019 0:00
4456456         3           9/11/2019 0:00
fsadf45564      4           9/12/2019 0:00
sadf54456       5           9/11/2019 0:00
564564311       6           9/11/2019 0:00
56456465456     7           9/9/2019 0:00
6456456456      8           9/12/2019 0:00
5.64565E+11     9           9/26/2019 0:00
15615656        10          9/26/2019 0:00
1566156165      11          9/26/2019 0:00
4885454         12          9/26/2019 0:00

Что за окончательный вариантвывод должен выглядеть следующим образом: все с добавлением дополнительного столбца с именем каждого пользователя, но в этом случае только одна строка для очереди заявок 1 и 2, поскольку есть дубликат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...