繁体   English   中英

如何让 R 以指数表示法读取一列数字?

[英]How can I get R to read a column of numbers in exponential notation?

我第一次尝试使用 R 来制作直方图。 我有一个文件,其中包含一列 100,000 个浮点数,大小从 8.85543e-07 到 1.15469e-03。 由于 'e' 表示法,R 显然不会将它们识别为浮点数。 我怎样才能让 R 阅读它们。 谢谢!

R 可以很好地读取这样的数字; 那里必须有另一个值导致问题。

如果您使用read.table / read.csv / read.delim读入数据,如果数据导入不正确,您始终可以将数据转换为数字。

x <- as.numeric(as.character(df$x))

其中df是您的数据框的名称,而x是您想要的列。

像这样读取文件:

file_as_data_frame <- read.table("file.txt", colClasses="numeric")

我发现在 R 中阅读科学记数法的一个问题有时不是数字本身,而是数字之间的空白。

您可以通过将文件中的一些科学记数法剪切并粘贴到文本编辑器并使用 C() 函数将数字括起来并用逗号分隔数字来测试这一点。 如果 R 从 C() 函数中正确读取科学记数法,那么您的文件中存在空格问题; 如果不是,您可能会遇到与科学记数法实现相关的平台特定问题(罕见且不太可能,但可能)。

如果您有“空白问题”,请检查 Read.Table() 的“delim =”参数。

注意:

    delim = " "  # one space
    delim = ""   # no space
    delim = "/t" # escape sequence for tab

所有人都以不同的方式对待空白。 可能需要反复试验才能查看哪个适用于您的文件。

您可以将 read.tables 的 colClasses 参数设置为“character”。 这将导致以字符格式读取数据,这将保留科学记数法

如果要对科学记数法格式的列进行计算,则可以使用 as.numeric 将该列从字符格式转换为数字格式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM