R有一个数据框利用dplyr将A列作为分组将每一组除第一行的B替换为NA
假设数据框名为df,A列为factor类型,B列为numeric类型,可以使用以下代码实现:
library(dplyr)
df <- df %>%
group_by(A) %>%
mutate(B = replace(B, -1, NA)) %>%
ungroup()
解释一下代码:
group_by(A):按A列分组;mutate(B = replace(B, -1, NA)):对每一组数据,在B列中除了第一行(即-1)之外,将其它数据替换为NA;ungroup():取消分组,得到最终的数据框。
需要注意的是,如果A列中有缺失值,那么会将缺失值单独归为一组,也会进行处理。可以根据具体情况进行处理。
原文地址: https://www.cveoy.top/t/topic/Nud 著作权归作者所有。请勿转载和采集!