簡體   English   中英

按組創建具有相關性和 p 值的數據框?

[英]Create dataframe with correlation and p-value by group?

我正在嘗試根據 R 中的特定組 (COUNTY) 關聯多個變量。雖然我能夠通過這種方法成功找到每列的相關性,但我似乎無法找到將 p 值保存到的方法每個組的表。 有什么建議?

示例數據:

crops <- data.frame(
    COUNTY = sample(37001:37900), 
    CropYield = sample(c(1:100), 10, replace = TRUE), 
    MaxTemp =sample(c(40:80), 10, replace = TRUE),
    precip =sample(c(0:10), 10, replace = TRUE), 
    ColdDays =sample(c(1:73), 10, replace = TRUE))

示例代碼:

crops %>% 
     group_by(COUNTY) %>%
     do(data.frame(Cor=t(cor(.[,2:5], .[,2]))))

^這給了我每一列的相關性,但我也需要知道每一列的 p 值。 理想情況下,最終輸出將如下所示。

期望輸出

每個縣只有 1 次觀察,所以它不起作用..我為每個縣設置了更多示例:

set.seed(111)
crops <- data.frame(
    COUNTY = sample(37001:37002,10,replace=TRUE), 
    CropYield = sample(c(1:100), 10, replace = TRUE), 
    MaxTemp =sample(c(40:80), 10, replace = TRUE),
    precip =sample(c(0:10), 10, replace = TRUE), 
    ColdDays =sample(c(1:73), 10, replace = TRUE))

我認為您需要轉換為長格式,並對每個 COUNTY 和變量進行 cor.test

calcor=function(da){
data.frame(cor.test(da$CropYield,da$value)[c("estimate","p.value")])
}

crops %>% 
pivot_longer(-c(COUNTY,CropYield)) %>% 
group_by(COUNTY,name) %>% do(calcor(.))

# A tibble: 6 x 4
# Groups:   COUNTY, name [6]
  COUNTY name     estimate p.value
   <int> <chr>       <dbl>   <dbl>
1  37001 ColdDays    0.466   0.292
2  37001 MaxTemp    -0.225   0.628
3  37001 precip     -0.356   0.433
4  37002 ColdDays    0.888   0.304
5  37002 MaxTemp     0.941   0.220
6  37002 precip     -0.489   0.674

以上為您提供了每個縣的每個變量與作物產量的相關性。 現在是將其轉換為寬格式的問題:

crops %>% 
pivot_longer(-c(COUNTY,CropYield)) %>% 
group_by(COUNTY,name) %>% do(calcor(.)) %>%
pivot_wider(values_from=c(estimate,p.value),names_from=name)

  COUNTY estimate_ColdDa… estimate_MaxTemp estimate_precip p.value_ColdDays
   <int>            <dbl>            <dbl>           <dbl>            <dbl>
1  37001            0.466           -0.225          -0.356            0.292
2  37002            0.888            0.941          -0.489            0.304
# … with 2 more variables: p.value_MaxTemp <dbl>, p.value_precip <dbl>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM