在 R 中寻找相关性和回归

Finding Correlation and Regression in R

我想使用 R 中的 fastfooddataset fromopenintro` 包执行以下任务。

a) 为 Sonic、Subway 和 Taco Bell 的所有项目的卡路里、total_fat、糖和钙之间的关系创建一个相关矩阵,用 na.omit() 省略缺失值.

b) 创建一个回归,根据卡路里、钠和蛋白质预测餐厅是麦当劳还是赛百味。

c) 运行 预测饱和脂肪、纤维和糖的卡路里的回归。根据标准化回归系数,确定最强的预测变量。

这是我的代码:

library(tidyverse)

library(openintro)

library(lm.beta)

fastfood <- openintro::fastfood

head(fastfood)

fastfood.corr <- cor(fastfood$calories, fastfood$total_fat, fastfood$sugar, fastfood$calcium,use="pairwise.complete.obs" ,method = "pearson")

但我收到错误 match.arg(替代)中的错误:'arg' 必须为 NULL 或字符向量:

您可能应该像这样在数据框列的子集上应用 cor

cor(fastfood[c('calories', 'total_fat', 'sugar', 'calcium')], 
    use="pairwise.complete.obs", method="pearson")
#            calories total_fat     sugar   calcium
# calories  1.0000000 0.9004937 0.4377113 0.3512067
# total_fat 0.9004937 1.0000000 0.2593702 0.1688170
# sugar     0.4377113 0.2593702 1.0000000 0.3105594
# calcium   0.3512067 0.1688170 0.3105594 1.0000000

您还可以为特定行(例如餐馆)设置子集。 (与上面的区别在于,当我们不使用逗号进行子集时,data[j],选择列,而当我们使用逗号时,data[i, j]i是行,j是列. 见 ?Extract.)

cor(fastfood[fastfood$restaurant %in% c("Sonic", "Subway", "Taco Bell"),
             c('calories', 'total_fat', 'sugar', 'calcium')], 
    use="pairwise.complete.obs", method="pearson")
#            calories total_fat     sugar   calcium
# calories  1.0000000 0.8402781 0.5150627 0.6127083
# total_fat 0.8402781 1.0000000 0.2234985 0.2415309
# sugar     0.5150627 0.2234985 1.0000000 0.6690489
# calcium   0.6127083 0.2415309 0.6690489 1.0000000

您也可以使用 dplyr 语法,但需要更多代码。

library(dplyr)
fastfood %>%
  filter(restaurant %in% c("Sonic", "Subway", "Taco Bell")) %>%
  select(calories, total_fat, sugar, calcium) %>%
  cor(use="pairwise.complete.obs", method="pearson")
#            calories total_fat     sugar   calcium
# calories  1.0000000 0.8402781 0.5150627 0.6127083
# total_fat 0.8402781 1.0000000 0.2234985 0.2415309
# sugar     0.5150627 0.2234985 1.0000000 0.6690489
# calcium   0.6127083 0.2415309 0.6690489 1.0000000

数据:

fastfood <- openintro::fastfood