Учимся понимать plyr, ddply

Я пытался понять, что и как работает plyr, пробуя разные переменные и функции и наблюдая за результатами. Поэтому я больше ищу объяснение того, как работает plyr, чем конкретное исправление, на которое он отвечает. Я прочитал документацию, но мой мозг новичка все еще не понимает ее.

Некоторые данные и имена:

mydf<- data.frame(c("a","a","b","b","c","c"),c("e","e","e","e","e","e")
                 ,c(1,2,3,10,20,30),
                  c(5,10,20,20,15,10))
colnames(mydf)<-c("Model", "Class","Length", "Speed")
mydf

Вопрос 1 :Синтаксис суммирования и преобразования

Итак, если я войду:ddply(mydf,.(Model), summarise, sum = Length+Length)

Я получаю:

`Model..1
1     a   2
2     a   4
3     b   6
4     b  20
5     c  40
6     c  60

и если я ввожу:ddply(mydf,.(Model), summarise, Length+Length)Я получаю тот же результат.

Теперь, если использовать преобразование:ddply(mydf,.(Model), transform, sum = (Length+Length))

я получаю:

  Model Class Length Speed sum
1     a     e      1     5   2
2     a     e      2    10   4
3     b     e      3    20   6
4     b     e     10    20  20
5     c     e     20    15  40
6     c     e     30    10  60

Но если я сформулирую это так же, как первое резюме: ddply(mydf,.(Model), transform, (Length+Length))

  Model Class Length Speed
1     a     e      1     5
2     a     e      2    10
3     b     e      3    20
4     b     e     10    20
5     c     e     20    15
6     c     e     30    10

Так почему же добавление «sum =" имеет значение?

Вопрос 2 :Почему они не работают?

ddply(mydf,.(Model), sum, Length+Length)#Ошибка в функции (i):объект «Длина» не найден

ddply(mydf,.(Model), length, mydf$Length) #Error in.fun(piece,...) : 

2 аргумента переданы в 'length', для которого требуется 1

Эти примеры больше для того, чтобы показать, что где-то я принципиально не понимаю, как пользоваться plyr.

Приветствуются любые ответы или объяснения.

21
задан rsgmon 6 July 2012 в 22:11
поделиться