首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中数据与数据表的相关性

R中数据与数据表的相关性
EN

Stack Overflow用户
提问于 2019-05-29 13:29:44
回答 1查看 259关注 0票数 1

我想要计算数据和数据列表之间的相关性。这是我的样本:

代码语言:javascript
复制
library(lubridate)
v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(2,20, length = 10)
v3 = seq(-2,7, length = 10)
v4 = seq(-6,3, length = 10)

df1 = data.frame(Date = v1, Tmax = v2, Tmean = v3, Tmin = v4)

v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(3,21, length = 10)
v3 = seq(-3,8, length = 10)
v4 = seq(-7,4, length = 10)

abc = data.frame(Date = v1, ABC_Tmax = v2, ABC_Tmean = v3, ABC_Tmin = v4)

v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(4,22, length = 10)
v3 = seq(-4,9, length = 10)
v4 = seq(-8,5, length = 10)

def = data.frame(Date = v1, DEF_Tmax = v2, DEF_Tmean = v3, DEF_Tmin = v4)

v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(2,20, length = 10)
v3 = seq(-2,8, length = 10)
v4 = seq(-6,3, length = 10)

ghi = data.frame(Date = v1, GHI_Tmax = v2, GHI_Tmean = v3, GHI_Tmin = v4)

df2 <-list(abc, def, ghi)

names(df2) = c("ABC", "DEF", "GHI")

我希望在df1和df2之间有所有的相关系数,但只在列上。

例如:

  • df2 1$Tmax和所有df2 2*Tmax列
  • Df1$t式和所有df2*t式栏
  • df2 1$Tmin和所有df2*Tmin列

我知道我可以访问所有这样的Tmax列:

代码语言:javascript
复制
lapply(df2, "[[", 2)

我知道如何计算两个单一值之间的相关性:

代码语言:javascript
复制
cor.test(df1$Tmax, df2$ABC$ABC_Tmax, method = "spearman")

但是我怎么能同时为所有的专栏做这件事呢?我试过了,这不管用:

代码语言:javascript
复制
cor.test(df1$Tmax, lapply(df2, "[[", 2), method = "spearman")

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-29 14:05:55

您可以结合使用lapplymapply应用cor.test,并从测试中提取一个特定的值。例如,要获得p.valueestimate,我们可以这样做

代码语言:javascript
复制
lapply(2:4, function(i)  mapply(function(x, y) {
       a <- cor.test(x, y, method = "spearman")
       c(setNames(a$p.value, "pvalue"), a$estimate)
}, lapply(df2, "[[", i), df1[i]))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56361801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档