Tbl не группирует 2 одинаковые строки

#r #data.table #tidyverse #purrr

#r #данные.таблица #tidyverse #мурлыканье

Вопрос:

 library(readr)
library(readxl)
library(tidyverse)
library(writexl)
library(purrr)

setwd("path")
file.list <- dir(pattern = "txt$")

Data_cleaner <- function(x) {
  lines <- read_lines(x)
  lower_lines <- tolower(lines)
  natures_df <-as.data.frame(do.call(rbind, strsplit(lower_lines, "(?<=\dx) | for ", perl = TRUE)))
  
  natures_df_clean <-
    natures_df %>% 
    rename(
      Quantity_dirty = V1,
      Product = V2,
      price_each = V3
    )
  
  Quantity_chr <-
    gsub(
      x = natures_df_clean$Quantity_dirty,
      pattern = "x",
      replacement = ""
    )
  
  Quantity <- as.numeric(Quantity_chr)
  
  price_clean_df <- gsub("R", replacement = "", x = natures_df_clean$price_each)
  
  price_clean <- gsub("each", replacement = "", x = price_clean_df)
  
  Price <- as.numeric(price_clean)
  
  natures_final_df <-
    natures_df_clean %>%
    mutate(
      Price = Price,
      Quantity = Quantity,
      QuantityXPrice = Price * Quantity
    )
  
  Natures <- select(natures_final_df, Product, Quantity)
  Natures
}

df = data.frame()
frame_frame <- map(file.list, Data_cleaner)
Total <- rbindlist(frame_frame)
  

Я пытался превратить текст во фреймы данных, а затем объединить все фреймы данных, но теперь я присоединяюсь к ним, и что-то вроде «маленький огурец» не будет объединяться, поэтому я получаю 2 экземпляра чего-то с одинаковым именем, даже когда я группирую, есть мысли?

Фрейм данных

Это текст, который я изменяю, и все они находятся в их собственных текстовых файлах

 2x Small Cucumber for R 10 each
1x Tomatoes 1kg for R 16 each
1x Carrot 1 kg for R 14 each
1x Butter 500g for R 57 each
3x Beef rump steak 300g for R 45 each
2x Chicken Braai pack 1.1kg for R 75 each 
2x Small Cucumber for R 10 each
1x Oyster Mushroom for R 20 each
1x Onions 1 kg for R 15 each
1x Asparagus 200g for R 45 each
1x Strawberry Punnet 250g for R 22 each
2x beef Fillet Steak 300g for R 54 each
1x Chicken flattie lemon and herb for R 85 each
1x Butter 500g for R 57 each
  

P.S Я новичок, поэтому извините, если это грязно.

Комментарии:

1. Пожалуйста, покажите нам ваш ожидаемый результат.

2. проверьте изображение, я не хочу, чтобы дубликаты в столбце продуктов были ожидаемым результатом.

3. Ваш текстовый файл содержит две строки, начинающиеся с 2x Small Cucumber . Вот почему вы получаете дубликаты в вашем фрейме данных. Вы хотите удалить последнюю?

4. я хочу, чтобы они сворачивались друг в друга, поэтому я получаю маленький огурец 4

Ответ №1:

Final <- Total %>% group_by(Product) %>% summarise(y = sum(Quantity))

Это решило мою проблему. group_by Сначала я попробовал, но я этого не summarise(sum()) Quantity сделал, поэтому он не свернул все мои дубликаты вместе.

Комментарии:

1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества и с большей вероятностью привлекут голоса.

2. Эй, извините, я опоздал и был слишком ленив, чтобы объяснять, но спасибо за напоминание.