【问题标题】:Importing .csv with scientific notation into R to preserve scientific notation?将带有科学记数法的 .csv 导入 R 以保留科学记数法?
【发布时间】:2017-08-29 19:25:55
【问题描述】:

我有一个如下所示的 CSV 数据框:

SNPID,chr,position,coded_all,noncoded_all,beta,SE,pval
rs10,7,92221824,a,c,0.0176,0.0182,0.3333
rs1000000,12,125456933,a,g,0.0195,0.0076,0.009999
rs10000010,4,21227772,t,c,0.0077,0.0062,0.215
rs10000012,4,1347325,c,g,0.0098,0.0093,0.2901

pval 列中的值介于 0 到 1 之间,其中许多是科学计数法。当我使用readrpval 作为numeric 将其导入R 时,pval 中的科学值不仅仅显示为数字。例如,9.996e-003 仅显示为 9.996

为了解决这个问题,我导入了带有p-val 作为字符的数据框,并使用as.numeric 将其强制转换为数字。这仍然导致了同样的问题。有没有其他办法解决这个问题?

【问题讨论】:

  • 我无法复制您的问题。例如,dat <- read.table(text="rs10000012,4,1347325,c,g,0.0098,0.0093,2.901e-003", sep=",") 适用于最终变量。
  • 我也无法使用readr 进行复制:read_csv("SNPID,chr,position,coded_all,noncoded_all,beta,SE,pval\nrs10000012,4,1347325,c,g,0.0098,0.0093,2.901e-003")。请提供reproducible example
  • 文件很大......所以我最初读它时使用:crp_num

标签: r


【解决方案1】:
df <- data.frame(pval = c("1e6", "9.996e-003"))

df$pval2 <- sapply(strsplit(as.character(df$pval), 'e'), 
               function(x) as.numeric(x[1]) * 10^as.numeric(x[2]) )

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多