簡體   English   中英

更改名義數據 - 多個名稱為“其他”/

[英]Changing nominal data - several names to 'Others'/

我對 R 很陌生。我有一個包含 1000 種不同類型葡萄酒的變量(名義變量)。 一些更常見的如 Chardonnay 等被表示 >100 次,而有幾種在變量中只出現一兩次。 這些加起來總共多達 1000 種葡萄酒類型中的大約 400 種。 我想將所有這些不同的稀有葡萄酒類型重命名為“其他”,而不必鍵入和重命名每種葡萄酒。 希望這是有道理的。

您可以使用table來計算每種酒的出現頻率,如果它小於n則將其替換為"Other" 如果你有一個字符向量,你可以做

n <- 2
wine_data <- c('wine1','wine1', 'wine2', "wine1", "wine2", "wine3")
wine_data[wine_data %in% names(Filter(isTRUE, table(wine_data) <= n))] <- 'Other'
wine_data
#[1] "wine1" "wine1" "Other" "wine1" "Other" "Other"

如果您有因素,您需要先向向量添加額外級別,然后再替換它。

wine_data <- factor(c('wine1','wine1', 'wine2', "wine1", "wine2", "wine3"))
levels(wine_data) <- c(levels(wine_data), "Other")
wine_data[wine_data %in% names(Filter(isTRUE, table(wine_data) <= n))] <- "Other"
droplevels(wine_data)
#[1] wine1 wine1 Other wine1 Other Other
#Levels: wine1 Other

暫無
暫無

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

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