一个示例数据框将如下所示:
> A
cell value
1 cell_1 1
2 cell_1 2
3 cell_1 3
4 cell_2 4
5 cell_2 5
6 cell_3 6
7 cell_3 7
8 cell_3 8
9 cell_3 9
我要实现的是:%>%group_by(cell),然后,如果组中少于3行,则该组中行的“值”列将设置为“ notAvailable”。
最终效果将是这样的:
> A
cell value
1 cell_1 1
2 cell_1 2
3 cell_1 3
4 cell_2 notAvailable
5 cell_2 notAvailable
6 cell_3 6
7 cell_3 7
8 cell_3 8
9 cell_3 9
您可以使用 :
library(dplyr)
df %>%
group_by(cell) %>%
mutate(value = if(n() < 3) 'notAvailable' else as.character(value))
# cell value
# <chr> <chr>
#1 cell_1 1
#2 cell_1 2
#3 cell_1 3
#4 cell_2 notAvailable
#5 cell_2 notAvailable
#6 cell_3 6
#7 cell_3 7
#8 cell_3 8
#9 cell_3 9
也许NA
比'notAvailable'
使用'notAvailable'
会更好,因为使用会将列转换为字符。
数据
df <- structure(list(cell = c("cell_1", "cell_1", "cell_1", "cell_2",
"cell_2", "cell_3", "cell_3", "cell_3", "cell_3"), value = 1:9),
class = "data.frame", row.names = c(NA, -9L))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句