假设数据框名为df,A列为factor类型,B列为numeric类型,可以使用以下代码实现:

library(dplyr)

df <- df %>% 
  group_by(A) %>% 
  mutate(B = replace(B, -1, NA)) %>% 
  ungroup()

解释一下代码:

  1. group_by(A):按A列分组;
  2. mutate(B = replace(B, -1, NA)):对每一组数据,在B列中除了第一行(即-1)之外,将其它数据替换为NA;
  3. ungroup():取消分组,得到最终的数据框。

需要注意的是,如果A列中有缺失值,那么会将缺失值单独归为一组,也会进行处理。可以根据具体情况进行处理。

R有一个数据框利用dplyr将A列作为分组将每一组除第一行的B替换为NA

原文地址: https://www.cveoy.top/t/topic/Nud 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录