【问题标题】:need finite 'ylim' values-error需要有限的 'ylim' 值-错误
【发布时间】:2013-11-07 12:58:49
【问题描述】:

我想在 r 的图中显示大数字。但我收到此错误:

我的号码是:

[1] "9,02E+11" "9,02E+11" "9,02E+11" "9,02E+11" "9,02E+11" "9,02E+11" "9,02E+11"
[8] "9,02E+11" "9,02E+11" "9,02E+11" "8,45E+12" "8,45E+12" "8,45E+12" "8,45E+12"
[15] "8,45E+12" "8,45E+12" "8,45E+12" "8,45E+12" "8,45E+12" "8,45E+12" "1,31E+13"
[22] "1,31E+13" "1,31E+13" "1,31E+13" "1,31E+13" "1,31E+13" "1,31E+13" "1,31E+13"
[29] "1,31E+13" "1,31E+13" "1,48E+13" "1,48E+13" "1,48E+13" "1,48E+13" "1,48E+13"
[36] "1,48E+13" "1,48E+13" "1,48E+13" "1,48E+13" "1,48E+13" "1,36E+13" "1,36E+13"
[43] "1,36E+13" "1,36E+13" "1,36E+13" "1,36E+13" "1,36E+13" "1,36E+13" "1,36E+13"
[50] "1,36E+13" "9,59E+12" "9,59E+12" "9,59E+12" "9,59E+12" "9,59E+12" "9,59E+12"
[57] "9,59E+12" "9,59E+12" "9,59E+12" "9,59E+12" "2,64E+12" "2,64E+12" "2,64E+12"
[64] "2,64E+12"

和简单的代码:

plot(dataliste,type="l")

我正在从 Excel 文件中读取这些值,但我无法为 ylim 指定限制,因为它们的范围很广。我该怎么做才能解决这个问题

【问题讨论】:

  • 错误是什么?你的“数字”是什么级别的?我猜是因素还是性格,对吧?给我们str(dataliste)的结果。
  • 这个命令的结果是:chr [1:64] "9,02E+11" "9,02E+11" "9,02E+11"...,错误是我写的主题need finite 'ylim' values

标签: r


【解决方案1】:

试试这个:

plot(sapply(dataliste, function(x)gsub(",", ".", x)))

正如 Roman Luštrik 所指出的,您的数据中很可能包含字符。您通常可以绘制它们或使用 as.numeric 转换它们。但是,由于您的字符串中有 , 而不是 .,因此转换为数字会失败。 示例:

> as.numeric("9,02E+11")
[1] NA
Warning message:
NAs introduced by coercion 
> as.numeric("9.02E+11")
[1] 9.02e+11

使用 gsub,如上所述,您可以将 , 替换为每个数字的 .,并且绘图应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2014-11-10
    • 2016-09-06
    • 1970-01-01
    相关资源
    最近更新 更多