ฉันมีกรอบข้อมูลนี้
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")
ฉันกำลังพยายามทำความเข้าใจให้ดีขึ้นเกี่ยวกับวิธีการทำงานของ ddply
ฉันต้องการทราบความยาวและความเร็วเฉลี่ยสำหรับการจับคู่รุ่นและคลาสแต่ละคู่
ฉันรู้ว่านี่เป็นวิธีหนึ่งที่จะทำ: ddply(mydf, .(Model, Class), .fun = summarize, mSpeed = mean(Speed), mLength = mean(Length))
ฉันสงสัยว่าฉันจะได้ค่าเฉลี่ยโดยใช้ ddply โดยไม่ระบุทีละรายการหรือไม่
ฉันลอง ddply(mydf, .(Model, Class), .fun = mean)
แล้ว แต่ได้รับข้อผิดพลาด
ข้อความเตือน: 1: ใน mean.default(piece, ...) : อาร์กิวเมนต์ไม่ใช่ตัวเลขหรือตรรกะ: ส่งคืน NA
ddply
ส่งต่อไปยังอาร์กิวเมนต์ของฟังก์ชันอะไร มีวิธีใช้หนึ่งฟังก์ชันกับทุกคอลัมน์โดยใช้ ddply
หรือไม่
เป้าหมายของฉันคือการเรียนรู้เพิ่มเติมเกี่ยวกับ ddply
ฉันจะยอมรับเฉพาะคำตอบเท่านั้นที่จะ ddply
summarize
ซึ่งคาดว่าจะมีเฟรม อาร์กิวเมนต์ที่ตามมา (mSpeed
, ...) จะเป็นอาร์กิวเมนต์ของsummarize
ดังนั้นการเรียกผลลัพธ์อาจเป็นsummarize(x, mSpeed=mean(Speed), mLength=mean(Length))
ในการเรียกครั้งที่สอง คุณกำลังพยายามส่งผ่านฟูลเฟรมไปที่mean
เมื่อจริงๆ แล้วต้องการเพียงเวกเตอร์เท่านั้น ฉันไม่รู้ว่าทำไมคุณถึงต้องการระบุทีละรายการ (เนื่องจากจะไม่เร็วกว่านี้) แต่ddply(mydf, .(Model, Class), .fun = summarize, mSpeed=mean(Speed))
ระบุทีละรายการ - person r2evans   schedule 17.04.2019