簡體   English   中英

R,降低未指定的因子水平

[英]R, drop unspecified factor levels

我有一個非常草率、非常大的數據集,我正在嘗試清理它。 其中一列標記為“文章類型”,它應該只有 6 個值:“討論”、“其他”、“隊列分析”、“案例系列”、“案例研究”和“RCT”。

它以數字形式存在於原始數據中,我使用此代碼來指定哪個是哪個:

 data$`Article Type`<-as.factor(data$`Article Type`)
data<-data%>%mutate(`Article Type`=fct_recode(`Article Type`,"RCT"="1","Cohort Analysis"="2","Case Series"="3","Case Study"="4","Discussion"="5","Other"="6"))

問題是:這個數據集中有很多混亂的數據輸入,當我運行這段代碼時:

data%>%count(`Article Type`)

我得到的不是我指定的 6 個值的計數,而是:

在此處輸入圖像描述

我知道我可以通過執行以下操作進行過濾:

data%>%filter(`Article Type`!="7")

或其他東西,但我寧願不要為每個不同的值寫出 30 次。

有沒有辦法編寫一些代碼:“如果它不是這 6 個級別之一,請放棄它”?

您可以使用 %in% 操作符僅保留您需要的值,而不是排除您不需要的所有內容:

library(dplyr)

data%>%
  filter(`Article Type` %in% c("Discussion","Other","Cohort Analysis","Case Series","Case Study","RCT")) 

暫無
暫無

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

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