python: invalid value encountered in divide以及invalid value encountered in double_scalars報錯

橙子牛奶糖發表於2024-10-18

執行命令python eqtl_prepare_expression.py data.tpm.gct data.reads_count.gct --tpm_threshold 0.1 --count_threshold 2 --sample_frac_threshold 0.2 --normalization_method tmm --output data.txt時出現了報錯“invalid value encountered in divide”以及“invalid value encountered in double_scalars”的報錯,問chatgpt,給了我以下的解決方案:

按照上述方案,去除無效值(如NaN或Inf):

cleaned_data <- data %>%
  mutate(across(col4:coln, 
                 ~ as.numeric(.) %>% # 將列轉換為 double 型別
                   na_if(Inf) %>%     # 將 Inf 替換為 NA
                   na_if(NaN)))       # 將 NaN 替換為 NA

再次執行命令python eqtl_prepare_expression.py data.tpm.gct data.reads_count.gct --tpm_threshold 0.1 --count_threshold 2 --sample_frac_threshold 0.2 --normalization_method tmm --output data.txt,沒啥卵用~~,還是出現相同的報錯,說明不是無效值導致的。

再次檢查資料,發現是某列均是0導致執行出現的報錯。那就去除全是0的列:
tr1=tr %>% select(where(is.numeric)) %>% select_if(~ sum(.) != 0)

再次執行命令,總算正常了~

相關文章