更新数据框列中的值子集

时间:2017-03-09 22:05:46

标签: r dataframe replace subset

以下是我的数据框的摘录:

  x         y     se
  4         a     7.146329
 15         a     8.458633
 17         a     9.286849
 11         b     6.700024
  8         b     4.697962  
 12         c     7.884244
 10         c     7.834816
 17         c     7.762385
 12         d     5.910785
 15         d     12.98158

我需要更新第一列,以便每个数字减1,但条件a和b。也就是说,我会获得c(4, 15, 17, 11, 8, 12, 10, 17, 12, 15)而不是c(3, 14, 16, 10, 7, 12, 10, 17, 12, 15)

1 个答案:

答案 0 :(得分:1)

可以在这里使用ifelse。假设数据框名为df1

df1$x <- ifelse(df1$y %in% c("a", "b"), df1$x - 1, df1$x)