如何将每行与相应列中的缩放器相乘?

时间:2019-08-15 22:32:07

标签: r dataframe

我有此数据,最后一列是1和-1。我想将每行与对应的最后一列元素(1或-1)相乘。

    col1.   col2.  col3.   col4
      3       2     4        1
      4        3    8        -1
      2        3     4       1 
      3         4     1       -1

输出:

    col1.   col2.  col3.   col4
      3        2      4         1
      -4        -3    -8        -1
      2         3      4        1 
      -3         -4     -1       -1

1 个答案:

答案 0 :(得分:1)

这是一种方法。我们可以使用mutate_at并指定要进行乘法的列,如下所示。

library(dplyr)

dat2 <- dat %>% mutate_at(vars(-col4), list(~ . * col4))
dat2
#   col1. col2. col3. col4
# 1     3     2     4    1
# 2    -4    -3    -8   -1
# 3     2     3     4    1
# 4    -3    -4    -1   -1

数据

dat <- read.table(text = "col1.   col2.  col3.   col4
      3       2     4        1
      4        3    8        -1
      2        3     4       1 
      3         4     1       -1",
                  header = TRUE)