สร้างการสรุปโดยอัตโนมัติด้วยตัวแปรปัจจัยใน R


11

ฉันมีชื่อไฟล์ดังต่อไปนี้:

   case simulation temp plank oxygen
1     1          1    8     7     11
2     2          1   16    10     15
...
17   17          2   26    12     17
18   18          2   15     8     12
19   19          2   28    11     21
20   20          2   24     6     14

ฉันต้องการสรุปโดยแยกตามระดับของตัวแปรการจำลอง ตัวอย่างเช่นฉันต้องการค่าเฉลี่ยของtempการจำลอง == 1 และจำลอง == 2 และเหมือนกันสำหรับค่าเบี่ยงเบนมาตรฐาน

ในขณะนี้ฉันใช้รหัสต่อไปนี้ซึ่งน่ากลัวมาก:

df <- read.csv("data.csv")
attach(df)

# Create subset variables
temp1 = subset(temp, simulation==1)
temp2 = subset(temp, simulation==2)

plank1 = subset(plank, simulation==1)
plank2 = subset(plank, simulation==2)

oxygen1 = subset(oxygen, simulation==1)
oxygen2 = subset(oxygen, simulation==2)

print(sd(temp1))
print(sd(temp2))
print(sd(plank1))
print(sd(plank2))

ฉันแน่ใจว่าต้องมีวิธีการอัตโนมัติใน R แต่ฉันไม่สามารถหาได้ ฉันได้ลองใช้summary(df ~ simulation)แต่ก็ไม่ได้มีประโยชน์อะไรเลย

คำตอบ:


17

ตรวจสอบby()หรือtapply()ฟังก์ชั่น โดยทั่วไป

tapply(y, g, mean)

จะให้ค่าเฉลี่ยของระดับของy gหากคุณต้องการที่จะได้รับจากมาตรการ data.frame aggregate()รวมส่งผลให้การใช้งาน

โซลูชันที่ซับซ้อนยิ่งขึ้นสามารถใช้ได้ผ่านsummary.formula()ฟังก์ชั่นในแพ็คเกจHmisc


3

แพคเกจdoByมีsummaryByฟังก์ชั่นที่มีไวยากรณ์ตามสูตรเช่นเดียวกับที่คุณพยายาม

นอกจากนี้ฉันคิดว่าคำถามนั้นจะถูกถามดีกว่าใน stackexchange


ขอบคุณ ฉันจะดูแพ็คเกจ นี่คือ stackexchange ใช่ไหม
robintw

1
ฉันคิดว่า fabians หมายถึง Stackoverflow: stackoverflow.comสำหรับการเขียนโปรแกรม R ฉันจะทำสิ่งใดในคำถาม R ได้ สถานที่นี้โดยทั่วไปเกี่ยวกับสถิติ ทั้งสองสามารถผสมผสานกันได้มาก
Gavin Simpson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.