Tự động tạo tóm tắt theo biến nhân tố trong R


11

Tôi đã có một khung dữ liệu như sau:

   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

Tôi muốn có được các bản tóm tắt được chia theo các cấp của biến mô phỏng. Ví dụ: tôi muốn giá trị trung bình của tempmô phỏng == 1 và mô phỏng == 2 và tương tự đối với độ lệch chuẩn.

Hiện tại tôi đang sử dụng đoạn mã sau, điều này khá kinh khủng:

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))

Tôi chắc chắn phải có một cách tự động để làm điều này trong R, nhưng tôi không thể tìm thấy nó. Tôi đã thử sử dụng summary(df ~ simulation), nhưng nó không tạo ra bất cứ điều gì hữu ích.

Câu trả lời:


17

Kiểm tra by()hoặc các tapply()chức năng. Về cơ bản,

tapply(y, g, mean)

sẽ cung cấp cho bạn ý nghĩa của các ycấp độ g. Nếu bạn muốn lấy data.frame từ các biện pháp tổng hợp kết quả, hãy sử dụng aggregate().

Một giải pháp phức tạp hơn có sẵn thông qua summary.formula()chức năng trong gói H'misc .


3

gói doBycó một summaryByhàm có cú pháp dựa trên công thức giống như bạn đã thử.

Ngoài ra, tôi nghĩ rằng câu hỏi đó sẽ được hỏi tốt hơn trên stackexchange.


Cảm ơn. Tôi sẽ xem xét các gói. Đây là stackexchange phải không?
robintw

1
Tôi nghĩ fabian có nghĩa là Stackoverflow: stackoverflow.com dành cho lập trình R, làm thế nào để tôi làm gì đó trong các câu hỏi R. Nơi này nói chung là về số liệu thống kê. Cả hai có thể pha trộn rất nhiều, tuy nhiên.
Phục hồi Monica - G. Simpson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.