R data.frame根据因子列修改列的某些值

时间:2012-07-26 13:03:43

标签: r

我在R中的数据框看起来像这样:

 ...    vals         cat  ...
        1.2          TRUE
        1.6          FALSE
        5            TRUE

我喜欢修改“vals”列中的值,具体取决于cat中的因子 column为TRUE或false。假设我想将vals列中的值相乘 当同一行的类别为TRUE时,使用因子(例如9)。

结果我想 拥有原始数据框的副本,但改为使用修改后的值。或者一个数据框,其中一列包含原始值(如果未修改)(FALSE)和修改后的if cat 是的。

希望有人可以 帮我一把。

最诚挚的问候Sab。

1 个答案:

答案 0 :(得分:0)

x <- data.frame(vals=c(11.2,9.1,2.1),cat=c(TRUE,FALSE,TRUE))

x
  vals   cat
1 11.2  TRUE
2  9.1 FALSE
3  2.1  TRUE

y <- x

y[y$cat,] <- x[x$cat,]*9

y
   vals cat
1 100.8   9
2   9.1   0
3  18.9   9