簡體   English   中英

如何從 R 中的列表中刪除重復的行

[英]How to remove duplicated rows from a list in R

我創建了一個包含配方成分的列表,但不知何故,在從 web 中抓取數據后,成分總是顯示 2 次。

如何從列出的項目中刪除重復項?

這是我得到的成分清單:

$Hozzávalók
[1] " 4 - 6 db kaffírlime-levél"     " 1 nagy csokor friss koriander" " 2 - 3 szál citromnád"         
[4] " 2 hüvelyknyi gyömbér"          " 3 gerezd fokhagyma"            " 2 szál újhagyma"              
[7] " 2 - 3 db zöld chili"           " 4 ek olívaolaj"                " 1 db lime leve"               
[10] " 170 g brokkoli"                " 4 - 5 fej sonkahagyma"         " 125 g zöldbab"                
[13] " 150 g cukkini"                 " 6 - 8 ek olaj"                 " 150 g cukorborsó"             
[16] " 500 ml zöldségalaplé"          " 1 konzerv kókusztej"           " 1 - 2 ek szójaszósz (világos)"
[19] "  só"                           " 100 g barna simeji gomba"      " 100 g simeji gomba"           
[22] "  ½ - 1 ek kukoricakeményítő"   " 1 db lime"                     "  rizstészta vagy jázmin rizs" 
[25] "  friss koriander"              "  friss chili"                  " 4 - 6 db kaffírlime-levél"    
[28] " 1 nagy csokor friss koriander" " 2 - 3 szál citromnád"          " 2 hüvelyknyi gyömbér"         
[31] " 3 gerezd fokhagyma"            " 2 szál újhagyma"               " 2 - 3 db zöld chili"          
[34] " 4 ek olívaolaj"                " 1 db lime leve"                " 170 g brokkoli"               
[37] " 4 - 5 fej sonkahagyma"         " 125 g zöldbab"                 " 150 g cukkini"                
[40] " 6 - 8 ek olaj"                 " 150 g cukorborsó"              " 500 ml zöldségalaplé"         
[43] " 1 konzerv kókusztej"           " 1 - 2 ek szójaszósz (világos)" "  só"                          
[46] " 100 g barna simeji gomba"      " 100 g simeji gomba"            "  ½ - 1 ek kukoricakeményítő"  
[49] " 1 db lime"                     "  rizstészta vagy jázmin rizs"  "  friss koriander"             
[52] "  friss chili" 

這是我使用的代碼:


    streetkitchen <- function(url){
    h <- read_html(url)
    nev <- h %>% html_node(".entry-head-mobile .entry-title") %>% html_text()
    hozzavalok <- h %>% html_nodes("dd") %>% html_text() %>% !duplicated()
    recept <- h %>% html_nodes(".the-content-div p") %>% html_text()
    return(list(Név = nev, Hozzávalók = hozzavalok, Recept = recept))
    }

我嘗試使用 function distinct()但它僅適用於數據幀。 謝謝您的幫助!

unique可能是您正在尋找的 function:

unique(streetkitchen$Hozzávalók)

您的帖子表明您確實有一個 dataframe (參見$的使用)。 要從 dataframe 中刪除重復的,您可以使用duplicated

數據:

df <- data.frame(
  Hozzávalók = c(" 4 - 6 db kaffírlime-levél"," 1 nagy csokor friss koriander", " 2 - 3 szál citromnád", " 1 nagy csokor friss koriander"),
  SomeOtherVar = c(1,2,1,3)
)
df
                      Hozzávalók SomeOtherVar
1      4 - 6 db kaffírlime-levél            1
2  1 nagy csokor friss koriander            2
3           2 - 3 szál citromnád            1
4  1 nagy csokor friss koriander            3 # duplicated `Hozzávalók` value

解決方案:

df[!duplicated(df$Hozzávalók),]

結果:

                      Hozzávalók SomeOtherVar
1      4 - 6 db kaffírlime-levél            1
2  1 nagy csokor friss koriander            2
3           2 - 3 szál citromnád            1

使用duplicated的問題是只保留另一個變量的第一個值,這可能不是你想要的。 您可以分組並明確總結 state 如何計算其他變量,例如,使用dplyr

df %>% group_by(Hozzávalók) %>% summarise(SomeOtherVar = min(SomeOtherVar))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM