【问题标题】:issue in finding correlation in R在 R 中寻找相关性的问题
【发布时间】: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

所以,我的问题是:

  1. 如何消除错误?
  2. 当年月格式不同时如何查找相关性?

任何指导都会对我有所帮助,因为我是新手。

【问题讨论】:

  • 这是一个编程问题而不是统计问题,之前在 Stack Overflow 上已经回答过很多次了。您的变量存储为character,它们应转换为numericas.numeric
  • 好的。所以我会在 Stack Overflow 上发布这个问题。
  • 这可能不是一个好主意。这个问题可能会被关闭。此外,我在评论中告诉了你如何做到这一点:cor(as.numeric(matr1[,"income"])....)
  • 这个问题有一个可重现的例子,所以我认为它不会在 SO 上关闭。不过,请不要交叉发布,@JasonDonnald。我们应该能够为您将您的 Q 迁移到 SO。
  • 关于矩阵的注意事项:同一矩阵中不能同时存在字符列和数字列。他们都必须是一个班级,这就是我认为您遇到问题的原因。如果矩阵中有任何字符值,则整个矩阵将转换为character 值。如果这是一个大问题,请尝试转换为 data.frames。

标签: r correlation


【解决方案1】:

IMO,处理日期有点痛苦。但是如果你已经知道你的行是对应的(也就是说,matr1 的第 i 行中的 income 与 / 与 matr2 的同一行中的 value 的月份和年份相同),你可以很简单地得到相关性:

cor(as.numeric(matr1[,"income"]), as.numeric(matr2[,"value"]))

【讨论】:

    猜你喜欢
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多