【问题标题】:Divide 2 numeric vectors of the same length将 2 个相同长度的数值向量相除
【发布时间】:2012-06-03 08:29:00
【问题描述】:
deflator <- nominalGDP/realGDP
WARNINING MSG  In Ops.factor(nominalGDP, realGDP) 

问题是得到:

deflator = nominal/real

使用名义GDP 和实际GDP 来计算平减指数值。 您应该最终得到一个名为 deflator 的数字向量,如下所示:

> deflator
[1] 0.9628929 0.9596746 0.9747274 0.9832532 0.9851884
[6] 0.9797770 0.9913502 1.0100561 1.0176906 1.0092516
[11] 1.0185932 1.0241043 1.0197975 1.0174097 1.0297328
... [71] 1.4497201

名义GDP包含

> nominalGDP
 [1] 21382 21585 20557 23720 22748 23110 22005 25211 24219
[10] 24436 23502 26554 24777 25538 24624 27279 25550 25505
[19] 24664 28142 26563 26794 26262 29487 28635 28204 27694
[28] 31593 30016 30688 29517 33754 32365 31875 31847 35178
[37] 33920 33715 33882 37685 36742 36890 36528 40263 38357
[46] 39229 38836 42192 40316 40541 40356 44830 42908 43930
[55] 43094 48599 46076 45562 43637 49231 46665 45711 43757
[64] 49409 48078 47773 46120 53168 51037 50191 48944

而realGDP包含

> realGDP
 [1] 22,206 22,492 21,090 24,124 23,090 23,587 22,197 24,960 23,798 24,212
[11] 23,073 25,929 24,296 25,101 23,913 26,492 24,774 24,896 23,835 26,852
[21] 25,734 25,883 25,244 28,225 27,260 26,894 25,968 28,891 27,372 27,543
[31] 26,753 30,045 28,556 28,490 28,093 31,702 30,214 29,870 29,387 32,535
[41] 31,427 31,310 30,577 33,655 32,125 32,372 31,760 34,753 32,968 32,922
[51] 32,103 35,658 34,033 34,470 33,195 36,489 34,400 33,685 32,680 36,487
[61] 34,328 34,194 32,073 36,495 35,201 34,843 33,207 37,279 35,666 35,028
[71] 33,761
71 Levels: 21,090 22,197 22,206 22,492 23,073 23,090 23,587 ... 37,279

我尝试的第一种方法是使用/ 简单地划分两个列表:

nominalGDP/realGDP  

给我一​​个警告信息。

我认为两者都是数字向量,但它们似乎并不对应。我也试过mapply("/", nominalGDP, realGDP)

请让我知道我在这里缺少什么以得出正​​确的结果。

我不想要答案本身,我想知道为什么它不起作用。

【问题讨论】:

  • realGDP 是一个因素。请参阅help("factor") 的标题为“警告”的部分。

标签: r vector numeric divide


【解决方案1】:

您的realGDP 属于因素类。我认为这是因为您将逗号作为小数点,而 R 将其视为因子(不是数字)。读取数据时应使用参数dec=',' 或将逗号更改为输入文件中的点。

【讨论】:

    【解决方案2】:

    线索在“realGDP”的打印表示的末尾。它是一个因子变量。你需要这样做:

     readGDP <- as.numeric(as.character(realGDP))
    

    ...那么你将有两个数字向量。

    【讨论】:

    • 除非系统语言环境将逗号识别为小数点,否则这是行不通的。
    • @danas.zuokas 查看预期的输出,我实际上并不认为逗号应该是小数点。
    猜你喜欢
    • 2022-06-17
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多