【问题标题】:Calculate correlations and write to a dataframe计算相关性并写入数据帧
【发布时间】:2014-08-11 16:14:43
【问题描述】:

我正在尝试遍历一个数据帧并计算每个 x,y 观察值的相关性并将其存储为一个新帧。

sub_dat 文件包含日期、硫酸盐、硝酸盐、ID 列

for (s in sub_dat$ID) {
    corrData <- rbind(cor(sub_dat$sulfate, sub_dat$nitrate))

}

corrData

我得到的只是单个值而不是矩阵。我已经删除了 NA,并且在调试时没有出现错误。有什么想法吗?

【问题讨论】:

  • 一些建议:花点时间考虑一下for 循环中的代码每次应该如何变化。为此,您应该在某处使用变量s;你?接下来花点时间玩rbind;它需要多少个参数? rbind 单个对象有意义吗?当您 rbind 不同类型的对象(数据框、向量、单个值)时会发生什么。

标签: r correlation


【解决方案1】:

我不太确定您的数据是什么样的,但我会假设如下:

             x           y group
1   0.08474419  0.16459807     1
2  -0.52390488 -0.52922622     1
3   0.12789339 -0.37239925     1
4  -0.49442433 -0.51763038     1
5   0.22440165 -0.73524373     1
6  -0.13219889  0.06979758     2
7   2.60532503  1.15088422     2
8   0.49880770  0.73113421     2
9   0.05612694  0.44701820     2
10  0.29456281  0.76804105     2

使用library(dplyr),您可以执行df %&gt;% group_by(group) %&gt;% summarise(corr = cor(x, y)) 之类的操作

输出:

      group      corr
1     1          0.2093626
2     2          0.8392375

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2019-04-26
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 2020-08-01
    相关资源
    最近更新 更多