gpt4 book ai didi

r - 在 R 中将指数值作为数字导入

转载 作者:行者123 更新时间:2023-12-04 12:18:09 26 4
gpt4 key购买 nike

我必须自动导入许多数据集,第一列是名称,因此是字符向量,第二列是数字向量,因此我将这些规范与 read.table 一起使用: colClasses = c("character", "numeric ”)。

如果我有一个像这样保存在 df_file 中的数据框,这很有效:

df<- data.frame(V1=c("s1","s2","s3","s4"), V2=c("1e-04","1e-04","1e-04","1e-04")

read.table(df_file, header = FALSE, comment.char="", colClasses = c("character", "numeric"), stringsAsFactors=FALSE)

问题是在某些情况下,我在第二列中有带有指数形式的数值的数据框,在这些情况下,导入不起作用,因为它不会将该列识别为数字(或者如果我将其作为“字符”导入不要指定 colClasses),所以我的问题是:
即使值是指数的,如何指定要导入为数字的列?

例如:
df<- data.frame(V1=c("s1","s2","s3","s4"), V2=c("10^(-4)","10^(-4)","10^(-4)","10^(-4)"))

我希望所有指数值都作为数字导入,但即使在导入后尝试从字符更改为数字时,我也会收到所有“NA”(as.numeric(as.character(df$V2))“警告消息: 由强制引入的 NA")

我也尝试将“真实”或“复杂”与 colClasses 一起使用,但它仍然将指数作为字符导入。

请帮忙,
谢谢你!

最佳答案

如果您阅读您的 data.framestringsAsFactors=FALSE ,有问题的列应该作为字符向量出现,在这种情况下,您可以简单地执行以下操作:

transform(df, V2=eval(parse(text=V2)))

关于r - 在 R 中将指数值作为数字导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com