2015-12-14 3 views
-1

Я хочу обобщить данные двумя способами, но в одной строке кода. Во-первых, я хочу получить среднее/медианное/SD числовой переменной по ID. Достаточно легко. Я также хочу получить среднее значение/медиану/SD того же числа с переменным ID, но только для подмножества другой переменной. Например, я хочу, чтобы получить среднее/медиана/SD возраста по группам, если образование равно 1.Использование setkey() для суммирования данных в R

Вот что я работаю с компанией:

DF.datatable<-data.table(DF) 
setkey(DF.datatable, group) 
new<-(DF.datatable[,list(mean=mean(age),median=median(age), sd=sd(age)),by=group]) 

Как вы можете увидеть, что Мне не хватает второго компонента выше. Setkey() создает новый файл, который включает только одну строку для каждой группы, поэтому критически (и проще) все идет в одном коде.

Любые идеи?

+0

Почему это должно быть на одну строку? Почему бы не сделать '(DF.datatable [eduction == 1, list (mean = mean (age), median = median (age), sd = sd (age)), by = group])' – Heroka

+0

Это будет работать, но Я хочу также получить средний/средний/SD возраста для всех в группе, а не только для тех, у кого есть образование == 1. Поэтому мне нужно то, что вы разместили в дополнение к тому, что я разместил. – needavacation

ответ

0

Попробуйте это:

DF.datatable[, .(mean(age), mean(ifelse(education == 1, age, NA), na.rm = T)), by = group]