【发布时间】:2014-10-02 14:19:42
【问题描述】:
我试图在R 的两个独立数据集之间找到correlation。我的第一个数据集的结构是(在R中使用print(matr1)时):
year month income
[1,] "2000" "01" "30000"
[2,] "2000" "02" "12364"
[3,] "2000" "03" "37485"
[4,] "2000" "04" "2000"
[5,] "2000" "05" "7573"
我的第二个数据集的结构是(在R中使用print(matr2)时):
month_year value
[1,] "Jan 2000" "84737476"
[2,] "Feb 2000" "39450334"
[3,] "Mar 2000" "48384943"
[4,] "Apr 2000" "12345678"
[5,] "May 2000" "49595340"
现在我想找出这两个数据集之间的相关性,但我遇到的问题是两个数据集中的月份和年份格式不同。另外,当我使用 R 命令cor(matr1[,"income"],matr2[,"value"]) 时,我得到的错误是
Error in cor(matr1[,"income"],matr2[,"value"]) :
'x' must be numeric
所以,我的问题是:
- 如何消除错误?
- 当年月格式不同时如何查找相关性?
任何指导都会对我有所帮助,因为我是新手。
【问题讨论】:
-
这是一个编程问题而不是统计问题,之前在 Stack Overflow 上已经回答过很多次了。您的变量存储为
character,它们应转换为numeric和as.numeric。 -
好的。所以我会在 Stack Overflow 上发布这个问题。
-
这可能不是一个好主意。这个问题可能会被关闭。此外,我在评论中告诉了你如何做到这一点:cor(as.numeric(matr1[,"income"])....)
-
这个问题有一个可重现的例子,所以我认为它不会在 SO 上关闭。不过,请不要交叉发布,@JasonDonnald。我们应该能够为您将您的 Q 迁移到 SO。
-
关于矩阵的注意事项:同一矩阵中不能同时存在字符列和数字列。他们都必须是一个班级,这就是我认为您遇到问题的原因。如果矩阵中有任何字符值,则整个矩阵将转换为
character值。如果这是一个大问题,请尝试转换为data.frames。
标签: r correlation