【发布时间】:2017-11-23 10:28:10
【问题描述】:
我正在尝试获取列desired_output,它由基于value 列组的值组成grp_1 和grp_2
即如果value 列中的值具有唯一值,则值应为NA's
如果值重复的次数多于任何值,则整个组将是该重复值
如果值重复相同的次数,那么整个组将是那个 MAX 数值
grp_1 = c("A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A")
grp_2 = c("a","a","a","a","a","b","b","b","b","c","c","c","c","d","d","d","d","e","e","e","e")
value =c(1,2,3,3,4,1,2,3,4,1,1,2,2,1,2,4,4,1,3,3,3)
desired_output =c(3,3,3,3,3,NA,NA,NA,NA,2,2,2,2,4,4,4,4,3,3,3,3)
df = data.frame(grp_1,grp_2,value,desired_output)
得到重复值计数后我被打动了
func <- function(x) {
unlist(lapply(rle(x)$lengths, seq_len))
}
df <- group_by(df,grp_1,grp_2)
df_1 <- mutate(df, common=as.numeric(func(value)) )
【问题讨论】:
标签: r