PowerBI中R脚本可视化:移除柱状图NA值的方法问询
解决PowerBI中R脚本生成柱状图的NA柱子问题
你用R脚本在PowerBI中生成柱状图时,出现占比最大的NA柱子,核心原因是原字段的NA值在拼接后变成了字符串"NA"(而非真正的缺失值),现有过滤逻辑只排除了空字符串,没处理这类"NA"字符串。以下是几种可行的修正方案:
方案1:拆分后同时过滤空字符串与"NA"
修改products数据处理环节的过滤条件,同时排除空值和"NA"字符串:
products <- dataset %>% select(product_description) %>% separate_rows(product_description, sep = ", ") %>% filter(product_description != "" & product_description != "NA") %>% # 新增过滤"NA"字符串 count(product_description) %>% arrange(desc(n)) %>% head(10)
方案2:拼接阶段直接忽略NA值
用str_c替代paste,结合na.rm=TRUE参数自动忽略原字段的NA值,从根源避免生成包含"NA"的拼接字符串:
# 替换原product_description生成代码 dataset$product_description <- str_c(dataset$ProductDescription__c.1, dataset$ProductDescription__c.2, dataset$ProductDescription__c.3, dataset$ProductDescription__c.4, dataset$ProductDescription__c.5, sep = ", ", na.rm = TRUE)
后续的trimws、iconv步骤保留即可,此时拼接后的字段不会出现"NA",仅需过滤空字符串就能解决问题。
方案3:将"NA"字符串转为缺失值后过滤
先把拼接后的"NA"字符串转为真正的缺失值,再用drop_na统一过滤:
products <- dataset %>% select(product_description) %>% separate_rows(product_description, sep = ", ") %>% mutate(product_description = na_if(product_description, "NA")) %>% # 将"NA"转为缺失值 filter(product_description != "") %>% drop_na(product_description) %>% # 过滤所有缺失值 count(product_description) %>% arrange(desc(n)) %>% head(10)
任选一种方案修改后重新运行脚本,柱状图中的NA柱子即可被移除。
内容的提问来源于stack exchange,提问作者Thomasiko
相关产品推荐
相关产品推荐

