我有一个问题,在闪亮,我将在一个简单的例子:
我有以下数据:
Group<-c("A","A","B","C","C","D")
Value<-c(1,2,6,7,3,9)
df<-data.frame(Group, Value)
Group Value
A 1
A 2
B 6
C 7
C 3
D 9 然后添加一行,查看一个组有多少代表:
df$num <- ave(df$Value, df$Group, FUN = seq_along)
Group Value num
A 1 1
A 2 2
B 6 1
C 7 1
C 3 2
D 9 1现在,我想检查这个组是否包含第二个代表,如果不是,复制组的第一行(包含num=1)并将num设置为2。
Group Value num
A 1 1
A 2 2
B 6 1
B 6 2 #this row is added
C 7 1
C 3 2
D 9 1
D 9 2 #this row is added我曾试图寻找解决方案,但我最终的结果主要是主题,比如一个条件,即based on a certain value,而不是一个组内的条件。
有人能帮我吗?我会非常感激的!
发布于 2018-10-25 14:01:15
这段代码能起作用吗?
res <- lapply(unique(df$Group), function(x){
a <- df[df$Group == x, ]
if(nrow(a) == 1) {
a <- a[rep(row.names(a), 2), ]
a$num <- c(1:2)
}
a
})
do.call(rbind, res)https://stackoverflow.com/questions/52986974
复制相似问题