python: invalid value encountered in divide以及invalid value encountered in double_scalars报错

运行命令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)

再次运行命令,总算正常了~

posted @ 2024-10-18 12:34  橙子牛奶糖  阅读(74)  评论(0编辑  收藏  举报