Saya memiliki bingkai data ini.
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")
Saya mencoba untuk mendapatkan pemahaman yang lebih baik tentang cara kerja ddply.
Saya ingin mendapatkan panjang dan kecepatan rata-rata untuk setiap pasangan model dan kelas.
Saya tahu ini salah satu cara untuk melakukannya: ddply(mydf, .(Model, Class), .fun = summarize, mSpeed = mean(Speed), mLength = mean(Length))
.
Saya ingin tahu apakah saya bisa mendapatkan mean menggunakan ddply dan tanpa menentukannya satu per satu.
Saya mencoba ddply(mydf, .(Model, Class), .fun = mean)
tetapi saya mendapatkan kesalahan
Pesan peringatan: 1: In mean.default(piece, ...) : argumen bukan numerik atau logis: mengembalikan NA
Apa yang ddply
sampaikan pada argumen fungsi? Apakah ada cara untuk menerapkan satu fungsi ke setiap kolom menggunakan ddply
?
Tujuan saya adalah mempelajari lebih lanjut tentang ddply
. Saya hanya akan menerima jawaban ddply
summarize
, yang mengharapkan sebuah bingkai; argumen selanjutnya (mSpeed
, ...) kemudian menjadi argumen kesummarize
, sehingga panggilan yang dihasilkan mungkinsummarize(x, mSpeed=mean(Speed), mLength=mean(Length))
. Pada panggilan kedua, Anda mencoba meneruskan frame penuh kemean
, padahal sebenarnya hanya menginginkan vektor. Saya tidak tahu mengapa Anda lebih memilih menentukannya satu per satu (karena tidak akan lebih cepat), tetapiddply(mydf, .(Model, Class), .fun = summarize, mSpeed=mean(Speed))
adalah satu per satu. - person r2evans   schedule 17.04.2019