Tôi có một dataframe trông giống như sau:tập con dataframe dựa trên số lượng ngoại
df <- data.frame(Site=rep(paste0('site', 1:5), 50),
Month=sample(1:12, 50, replace=T),
Count=(sample(1:1000, 50, replace=T)))
Tôi muốn loại bỏ bất kỳ trang web mà số lượng luôn là < 5% số lượng tối đa hàng tháng trên tất cả các trang web.
Các đếm tối đa hàng tháng trên tất cả các trang web này là:
library(plyr)
ddply(df, .(Month), summarise, Max.Count=max(Count))
Nếu đếm tổng số 1 được gán cho Site5, sau đó đếm của nó luôn < 5% số lượng tối đa hàng tháng trên tất cả các trang web. Vì vậy, tôi muốn xóa site5.
df$Count[df$Site=='site5'] <- 1
Tuy nhiên, sau khi gán giá trị mới để site2, một số đếm của nó là < 5% số lượng hàng tháng tối đa, trong khi những người khác là> 5%. Vì vậy, tôi sẽ không muốn site2 gỡ bỏ.
df$Count[df$Site=='site2'] <- ceiling(seq(1, 1000, length.out=20))
Làm cách nào để có thể đặt dataframe để loại bỏ bất kỳ trang web nào có số lượng luôn là < 5% số lượng tối đa hàng tháng? Hãy cho tôi biết nếu câu hỏi không rõ ràng và tôi sẽ sửa đổi.
Vì vậy, loại bỏ tất cả các hàng cho các trang web nơi count <5% số lượng tối đa trong Jan, <5% số lượng tối đa trong tháng hai, <5% tối đa tính vào tháng Ba .... mỗi tháng trong năm. Không loại bỏ bất kỳ hàng nào cho các trang web, ví dụ: tính <5% số lượng tối đa mỗi tháng trừ tháng 6. – luciano
@RossAhmed, điều này nên làm điều đó. – Arun