簡體   English   中英

合並R中的數據表因子級別

[英]Consolidate data table factor levels in R

假設我有一個很大的數據表,其中一列是“ ManufacturerName”。 數據輸入不一致,因此非常混亂。 例如,可能有如下觀察結果:

ABC Inc
ABC, Inc
ABC Incorporated
A.B.C.
...
Joe Shmos Plumbing
Joe Shmo Plumbing
...

我正在R中尋找一種自動化的方法來嘗試將相似的名稱視為一個因素級別。 我已經學會了手動執行此操作的語法,例如:

levels(df$ManufacturerName) <- list(ABC=c("ABC", "A.B.C", ....), JoeShmoPlumbing=c(...))

但是我試圖考慮一種自動化的解決方案。 顯然,由於我無法預期數據表中的每種排列類型,因此它並不是完美的。 但是也許可以搜索因子水平,去除標點符號/特殊字符,並根據常見的第一個單詞創建水平。 或其他任何想法。 謝謝!

查看stringdist包。 對於初學者,您可以執行以下操作:

library(stringdist)

x <- c("ABC Inc", "ABC, Inc", "ABC Incorporated", "A.B.C.", "Joe Shmos Plumbing", "Joe Shmo Plumbing")
d <- stringdistmatrix(x)
#    1  2  3  4  5
# 2  1            
# 3  9 10         
# 4  6  7 15      
# 5 16 16 16 18   
# 6 15 15 15 17  1

要獲得更多幫助,請參閱?stringdistmatrix或在StackOverflow上進行模糊匹配,近似字符串匹配,字符串距離函數和agrep

暫無
暫無

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

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