簡體   English   中英

處理自定義函數摘要中的 NaN 值

[英]Handling NaN values in custom function summary

我有自定義函數,我想用“0.0”替換 NaN 和 Na 值,這可能是最簡單的解決方案。

df <- data.frame(Name = c("asdf","kjhgf","cvbnm","rtyui","cvbnm","jhfd","cvbnm","sdfghj","cvbnm","dfghj","cvbnm"),
                 sale=c(27,28,NA,16,NA,25,NA,14,NA,18,NA),
                 city=c("CA","TX","MN","NY","TX","MT","HU","KL","TX","SA","TX"),
                 Dept = c("HH","MM","NN","MM","AA","VV","MM","HU","JJ","MM","ZZ"))

df$sale = as.numeric(df$sale)
data=df
filter_var= "Name"
filter_val="cvbnm"
Text_var="sale"
Name_of_variable="EXP"
decimal =TRUE
footer=""
Suff="%"

filter_val = ensym(filter_val)
filter_var = rlang::parse_expr(filter_var)
Text_var= ensym(Text_var)
  numdig <- if (decimal == TRUE) {1} else {0}
  dat1<-data %>% select(!!filter_var,!!Text_var) %>% filter(!is.na(!!Text_var))
  dat2<- dat1 %>% filter((!!filter_var == filter_val))
  
  summ_tab1<- dat2 %>% 
    select(!!Text_var)  %>%  summarise(
      q25 = format(round(quantile(!! Text_var,  type=6, probs = seq(0, 1, 0.25), na.rm=TRUE)[2],digits = numdig),nsmall = numdig),
      Median = format(round(quantile(!! Text_var, type=6, probs = seq(0, 1, 0.25), na.rm=TRUE)[3],digits = numdig),nsmall = numdig),
      Average = format(round( mean(!! Text_var, na.rm=TRUE),digits = numdig),nsmall = numdig),
      q75 = format(round(quantile(!! Text_var, type=6, probs = seq(0, 1, 0.25), na.rm=TRUE)[4],digits = numdig) ,nsmall = numdig),
      N = sum(!is.na(!!Text_var)))
  summ_tab1

summ_tab1[2,](is.nan(summ_tab1[2,0])) <- "0.0"

我試過這個,但不起作用

這是你想要的嗎?

summ_tab1[1, 1:4] <- "0.0"

暫無
暫無

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

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