我想要計算每個id的一個非常大的數據集一個月的概率,我在論壇中與「mutate函數」來到這裏,但它並不真的以我想要的方式工作。我的數據看起來相似,我要計算的P列:mutate r條件與data.frame作爲過濾器
ID Month Day E P
1 200701 20070101 .3 .333
1 200701 20070102 .5 .333
1 200701 20070105 .5 .333
1 200702 20070106 .6 1
2 200701 20070101 .4 .5
2 200701 20070103 .3 .5
對我的考驗我已經子集的ID和月,然後簡單地用1 /長度(DF $月)。 我現在的想法是,提取所有ID:
u <- subset(df, !duplicated(df$ID))
s <- subset(df, !duplicated(df$Month)) #Month is defined as date variable
,然後用一個公式推類似變異他們:
mutate(df, p = 1/length(df$ID == u & df$month ==s))
這並不不幸的是工作。
或者我必須做一個循環?
請顯示你想要的輸出。 – nicola
所以這個'df%>%group_by(ID,Month)%>%mutate(P = 1/n())' – Sotos
只使用'base R','df $ P < - (df,1/ave seq_along(ID),身份證,月,FUN =長度))' – akrun