【发布时间】:2014-07-29 19:46:29
【问题描述】:
我一直在努力使用 R 来分析财务数据。总的来说,我是编程新手,真的,除了非常习惯在 Excel 中工作。因此,我花了很多时间(可能太多时间)格式化我的 CSV 文件,只是为了尽量减少在 R 中工作时的麻烦,但这并没有奏效。
这是我的 PCA 分析代码。当我使用没有 N/As 或空白的较小数据文件时,我才让它工作,但我需要知道如何在 R 中处理这些。
returns <- read.csv("PCA Data File.csv", skip = 1, header = T)
#standardize the variables
returns.pca <- prcomp(returns[2:ncol(returns)], scale = TRUE)
结果是:
svd(x, nu = 0) 中的错误:“x”中的值无限或缺失
由此引发了许多问题,首先是您如何解决这个问题?其次,我如何探索我的数据以确保正确处理或替换缺失值?是不是我的数据是导致问题的 data.frame 而不是矩阵?
我不确定如何附加 CSV 文件,但这里是文件的前几行(共有 241 行):
Date Returns Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10 Var11 Var12 Var13 Var14 Var15 Var16 Var17 Var18 Var19 Var20 Var21 Var22 Var23 Var24 Var25 Var26 Var27 Var28 Var29 Var30 Var31 Var32 Var33 Var34 Var35 Var36 Var37 Var38 Var39 Var40 Var41 Var42 Var43 Var44 Var45 Var46 Var47 Var48 Var49 Var50 Var51 Var52 Var53 Var54 Var55 Var56 Var57 Var58 Var59 Var60 Var61
6/30/2014 0.48 18.12 9.44 107.43 19.53 1.92 11.54 0.99 3.33 98.83 0.44 2.59 3.42 105.15 308.59 80.44 1.36 0.94 102.07 1.69 331.47 53656.02 21897.39 11022.87 23144.90 15131.80 0.59 2.70 1.35 0.58 0.33 0.25 103.38 1.67 2.59 3.42 1.75 0.10 1.09 2.00 -0.11 1.24 2.08 0.22 138780.00
5/31/2014 1.52 17.63 9.44 107.18 14.36 1.96 12.48 1.01 3.49 98.60 0.37 2.55 3.39 101.79 306.79 79.96 1.37 0.93 101.84 1.68 324.69 53122.21 21159.31 10558.07 22584.93 14343.14 0.59 2.62 1.40 0.52 0.41 0.11 103.39 1.58 2.55 3.39 1.81 0.09 1.11 1.96 -0.07 1.15 2.29 0.47 3.50 1.49 138492.00 171.04 11302.80 4322654.00 55.40 -44.39 441.59 1000.70 117.44 11.60 6.50 1.50 0.50
4/30/2014 1.07 17.40 9.45 107.11 22.93 1.96 14.20 1.02 3.49 98.24 0.40 2.69 3.52 102.03 308.63 79.85 1.38 0.93 102.51 1.67 323.24 51470.08 21660.07 10399.85 22598.44 14475.33 0.61 2.67 1.53 0.53 0.47 0.06 103.47 1.69 2.69 3.52 1.82 0.09 1.49 2.08 0.02 1.16 2.04 -4.63 0.04 3.50 1.42 138268.00 171.58 11227.50 4296049.00 54.90 -47.04 425.02 204.90 117.57 11.60 27.30 6.60 1.80 1.40
3/31/2014 0.50 17.51 9.51 106.40 25.98 1.95 14.84 1.09 3.65 98.40 0.38 2.72 3.62 100.51 303.49 79.87 1.38 0.91 102.36 1.66 316.98 47046.98 20839.70 10097.38 21980.77 14694.83 0.61 2.72 1.59 0.52 0.48 0.04 103.44 1.63 2.72 3.62 1.99 0.08 1.73 2.10 0.00 1.13 2.02 0.91 3.30 1.20 137964.00 171.47 11169.00 4226971.00 53.70 -44.18 452.77 608.80 117.39 11.70 15.10 27.30 6.80 1.60 0.20
2/28/2014 1.76 17.10 9.52 106.27 25.35 1.96 15.47 1.13 3.88 98.46 0.31 2.70 3.66 100.68 294.91 80.44 1.37 0.90 102.12 1.66 315.92 47367.89 20039.38 10048.23 22188.31 14617.57 0.60 2.74 1.66 0.44 0.44 0.01 103.45 1.50 2.69 3.66 2.16 0.07 1.82 2.10 -0.05 1.04 1.87 0.91 3.10 1.08 137761.00 169.34 11133.50 4159972.00 53.20 -42.59 383.36 -48.40 116.28 11.70 27.30 6.90 1.70 1.70
【问题讨论】:
-
粘贴
dput(head(returns, 10))的输出而不是当前的复制粘贴。 -
我想我以前去过那个页面。无论如何,现在我收到此错误: prcomp.default(na.omit(returns[2:ncol(returns)]), scale = TRUE) 中的错误:无法将常量/零列重新缩放为单位方差
-
找到另一篇解决此错误的帖子:prcomp.default 中的错误(na.omit(returns[2:ncol(returns)]), scale = TRUE) : cannot rescale a constant/zero column to unit方差更新如下:>returns.pca returns.pca
标签: r