簡體   English   中英

為每個因子類別計算數據框數據中變量 x 和 y 之間的相關性

[英]Calculating correlation between variables x and y in data frame data for each category of a factor

我正在嘗試編寫一個 function ,它將為我在數據框中為每個因素類別(在本例中為“性別”)提供變量 x(年齡)和 y(看電視的時間)之間的相關性

##The function
partcorr <- function(data, x, y) {
  corrs <- list()
  for(i in levels(data[,cat])) {
    corrs[i] <- round(cor(data[data[,cat] == i, x], data[data[,cat] == i, y], method = "pearson"), digits = 2)
  }
  return(corrs)
}

##Function
partcorr(tv_viewing, "age", "views", "sex")

我得到的錯誤:partcorr中的錯誤(tv_viewing,“age”,“views”,“sex”):未使用的參數(“sex”)

誰能指出我正確的方向? 謝謝你

你沒有發布數據,所以我做了一些,很容易通過循環獲得所有級別,但我也在下面提供了 function。 它需要一個data.frame作為參數以及gender的級別,它應該是一個字符串。

n <- 100
age <- rpois(n, 10)
tv <- rnorm(n, 100)
gender <- as.factor(sample(c(1,2,3), n, replace = TRUE))
df <- data.frame(age, tv, gender)
head(df)
# age        tv gender
# 1  14  98.37402      1
# 2   7 100.78864      2
# 3   7  99.88344      3
# 4  11  99.61374      2
# 5  14  99.47069      2
# 6   5 101.77038      3
gender_levels <- levels(df$gender)

out <- list()
for ( i in seq_along(gender_levels)) {
 out[[i]]<-   cor(df[df$gender == i,]$tv,df[df$gender == i,]$age )
}
out
# [[1]]
# [1] -0.1274395
# 
# [[2]]
# [1] -0.3406629
# 
# [[3]]
# [1] -0.4413302

cor_by_gender <- function(df, gender_type) {
                                           return(cor(df[df$gender == gender_type,]$tv,df[df$gender == gender_type,]$age ))
}

cor_by_gender(df, "1")
# [1] -0.1274395

暫無
暫無

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

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