[英]Finding Correlation and Regression in R
我想在 R 中使用dataset from
執行以下任務。
a) 為 Sonic、Subway 和 Taco Bell 的所有項目的卡路里、總脂肪、糖和鈣之間的關系創建一個相關矩陣,使用 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")
但我收到錯誤 Error in match.arg(alternative): 'arg' must be NULL or a character vector:
您可能應該像這樣在數據框列的子集上應用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.