Преобразуйте объектом к кадру данных в R

Я использую функцией в R, чтобы нарубить кадр данных и применить функцию к различным частям, как это:

pairwise.compare <- function(x) {
Nright <- ...
Nwrong <- ...
Ntied <- ...
return(c(Nright=Nright, Nwrong=Nwrong, Ntied=Ntied))
}
Z.by <- by(rankings, INDICES=list(rankings$Rater, rankings$Class), FUN=pairwise.compare)

Результат (Z.by) выглядит примерно так:

: 4 
: 357 
Nright Nwrong Ntied
     3      0     0
------------------------------------------------------------
: 8 
: 357 
NULL
------------------------------------------------------------
: 10 
: 470 
Nright Nwrong Ntied
     3      4     1 
------------------------------------------------------------ 
: 11 
: 470 
Nright Nwrong Ntied
    12      4     1

То, что я хотел бы, должно иметь этот результат, преобразованный в кадр данных (с ПУСТЫМИ записями, не существующими), таким образом, он похож на это:

  Rater Class Nright Nwrong Ntied
1     4   357      3      0     0
2    10   470      3      4     1
3    11   470     12      4     1

Как я делаю это?

17
задан jogo 23 January 2016 в 10:50
поделиться

2 ответа

Рассмотрите возможность использования ddply в пакете plyr вместо by. Он обрабатывает работу по добавлению столбца в ваш фрейм данных.

8
ответ дан 30 November 2019 в 12:07
поделиться

Функция by возвращает список, поэтому вы можете сделать что-то вроде этого:

data.frame(do.call("rbind", by(x, column, mean)))
17
ответ дан 30 November 2019 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: