Корреляция для двух переменных в группе по условию в R - PullRequest
0 голосов
/ 24 апреля 2018

Ниже приведены мои данные.

Name, Salary, Age
New York, 45000,34
New York, 47000, 35
New York , 35000, 28
New York, 23000, 27
Mexico , 56000, 34
Mexico , 67000, 35
Mexico , 63300, 45
Mexico, 31000, 31

Я бы хотел иметь соотношение между зарплатой и возрастом для каждой группы отдельно. Я не хочу смешивать данные между группами. Я попытался использовать цикл for в R, но не повезло!

Еще один вопрос, нужно ли мне стандартизировать мои данные до сопоставления. Я предполагаю, что не требуется? Я сделал это для PCA ранее, поэтому просто пытался уточнить его для базового корреляционного вывода.

Я ищу вывод, как показано ниже:

City, Correlation
Mexico, 0.756
New York, 0.465

Любые выводы будут высоко оценены!

Спасибо, J

1 Ответ

0 голосов
/ 24 апреля 2018

Опция, использующая dplyr и cor.

Обновлено: На основе отзывов @ Frank

library(dplyr)

df %>% group_by(Name) %>%
  summarise(Correlation = cor(Age, Salary))
# # A tibble: 2 x 2
# Name     Correlation
# <chr>          <dbl>
# 1 Mexico         0.614
# 2 New York       0.935

df <- read.table(text = 
"Name, Salary, Age
'New York', 45000,34
'New York', 47000, 35
'New York', 35000, 28
'New York', 23000, 27
Mexico, 56000, 34
Mexico, 67000, 35
Mexico, 63300, 45
Mexico, 31000, 31",
header = TRUE, stringsAsFactors = FALSE, sep = ",")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...