我想分析R中的默认数据集(mtcars数据集) . 我有兴趣根据以下规则创建相关系数列 . 仅在“mpg”和“wt”之间的前三个观测值((即,行1,2,3))的相关系数,然后离开第一行,再次计算下三个观测值之间的相关系数(即,第2,3行, 4)在mpg和wt之间然后离开前两行,再次计算mpg和wt之间的下三个观察值(即,行3,4,5)之间的相关系数,依此类推直到结束 . 例如
cor(mtcars$mpg[c(1,2,3)],mtcars$wt[c(1,2,3)])
cor(mtcars$mpg[c(2,3,4)],mtcars$wt[c(2,3,4)])
cor(mtcars$mpg[c(3,4,5)],mtcars$wt[c(3,4,5)]);
等等 . 任何人都可以帮助如何使用循环等自动化此R代码 .
Example,看看我是如何需要输出的,我已经在excel中完成了但我需要在R中完成它
2 回答
cor(mtcars$mpg[c(1,2,3)],mtcars$wt[c(1,2,3)])
的值是-0.8884586;但是,问题中输出图像的“关联”列中的第一个值不是这样,因此相对于所需内容的描述,所显示的图像中存在一些错误 . 我们假设描述是正确的,而样本输出则不是 .尝试滚动申请,
rollapply
. 它将函数cor2
应用于宽度为3的滚动窗口.align = "left"
表示它使用当前行和接下来的2行,以便NA值显示在问题中的图像中 .fill = NA
使它为最后2个元素生成NA值,因为这些元素不再有3个元素 .赠送:
另请参阅此SO帖子,除了在data.table上下文中类似之外:Rolling correlation with data.table
我不清楚你为什么想要计算看起来像我在
3
行/观察窗口内滚动相关的内容,但你可以在基数R中做这样的事情:这里
x
是list
,其中包含作为条目的行/观察,我们根据这些条目计算相关性 .