Tôi đã học R bằng cách chơi đùa, và tôi bắt đầu nghĩ rằng tôi đang lạm dụng chức năng tapply. Có cách nào tốt hơn để thực hiện một số hành động sau đây không? Cấp, họ làm việc, nhưng khi họ nhận được phức tạp hơn, tôi tự hỏi, nếu tôi đang mất trên các tùy chọn tốt hơn. Tôi đang tìm kiếm một số lời chỉ trích, ở đây:Phá vỡ thói quen junkie tapply
tapply(var1, list(fac1, fac2), mean, na.rm=T)
tapply(var1, fac1, sum, na.rm=T)/tapply(var2, fac1, sum, na.rm=T)
cumsum(tapply(var1, fac1, sum, na.rm=T))/sum(var1)
Cập nhật: Dưới đây là một số dữ liệu ví dụ ...
var1 var2 fac1 fac2
1 NA 275.54 10 (266,326]
2 NA 565.89 10 (552,818]
3 NA 815.41 6 (552,818]
4 NA 281.77 6 (266,326]
5 NA 640.24 NA (552,818]
6 NA 78.42 NA [78.4,266]
7 NA 1027.06 NA (818,1.55e+03]
8 NA 355.20 NA (326,552]
9 NA 464.52 NA (326,552]
10 NA 1397.11 10 (818,1.55e+03]
11 NA 229.82 NA [78.4,266]
12 NA 542.77 NA (326,552]
13 NA 829.32 NA (818,1.55e+03]
14 NA 284.78 NA (266,326]
15 NA 194.97 10 [78.4,266]
16 NA 672.55 8 (552,818]
17 NA 348.01 10 (326,552]
18 NA 1550.79 9 (818,1.55e+03]
19 101.98 101.98 4 [78.4,266]
20 NA 292.80 6 (266,326]
Cập nhật bãi chứa dữ liệu:
structure(list(var1 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 101.98, NA), var2 = c(275.54,
565.89, 815.41, 281.77, 640.24, 78.42, 1027.06, 355.2, 464.52,
1397.11, 229.82, 542.77, 829.32, 284.78, 194.97, 672.55, 348.01,
1550.79, 101.98, 292.8), fac1 = c(10L, 10L, 6L, 6L, NA, NA, NA,
NA, NA, 10L, NA, NA, NA, NA, 10L, 8L, 10L, 9L, 4L, 6L), fac2 = structure(c(2L,
4L, 4L, 2L, 4L, 1L, 5L, 3L, 3L, 5L, 1L, 3L, 5L, 2L, 1L, 4L, 3L,
5L, 1L, 2L), .Label = c("[78.4,266]", "(266,326]", "(326,552]",
"(552,818]", "(818,1.55e+03]"), class = "factor")), .Names = c("var1",
"var2", "fac1", "fac2"), row.names = c(NA, -20L), class = "data.frame")
Cũng giống như một lời nhận xét: trong khi đây là những ví dụ rõ ràng, nó sẽ dễ dàng hơn để giúp đỡ nếu bạn cung cấp dữ liệu mẫu cho var1, fac1 vv – Shane
điểm tốt. Đã thêm mẫu dữ liệu. – Totovader
Gợi ý: bạn có thể sử dụng hàm dput() để trích xuất cấu trúc của dữ liệu mẫu đó, sau đó dán kết quả vào đây không? Làm cho nó dễ dàng nhập. –