Как сделать две сортировки в r, когда порядок имеет значение - PullRequest
0 голосов
/ 21 октября 2019

У меня есть фрейм данных, состоящий из трех переменных: импульсный доход (числовой), волатильность (фактор) и состояние рынка (фактор). Волатильность и состояние рынка имеют два-два уровня. У волатильности есть уровни, названные высокими и низкими. Состояния рынка имеют уровень, названный положительным и отрицательным. Я хочу сделать таблицу с двумя сортировками. Я хочу получить возврат импульса в каждом случае.

library(wakefield)
mom<-rnorm(30)
vol<-r_sample_factor(30,x=c("high","low"))
mar_state<-r_sample_factor(30,x=c("positive","negtive"))
df<-data.frame(mom,vol,mar)

enter image description here

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Исходя из предложения, данного @ r2evans, если вы хотите получить среднее значение для каждого отсортированного случая, вы можете применить следующий код.

xtabs(mom~vol+mar,aggregate(mom~vol+mar,data=df,mean))
## If you want simple sum in every case
xtabs(mom~vol+mar,data=df)

0 голосов
/ 28 октября 2019

Вы также можете сделать это с помощью пакета data.table. Этот подход сделает ту же задачу за меньшее время.

library(data.table)
df<-as.data.table(df)
## if you want results in data frame format
df[,.(mean(mom)),by=.(vol,mar)]
## if you want in simple vector form
df[,mean(mom),by=vol,mar]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...