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

时间:2013-07-18 05:52:47

标签: r statistics

我第一次尝试使用R来制作直方图。我有一个文件,其中包含一列100,000个浮点数,大小从8.85543e-07到1.15469e-03。由于'e'符号,R显然不认为它们是浮点数。如何让R读取它们。谢谢!

4 个答案:

答案 0 :(得分:8)

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

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

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

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

答案 1 :(得分:2)

阅读如下文件:

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

答案 2 :(得分:0)

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

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

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

请注意:

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

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

答案 3 :(得分:0)

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

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