首页 > 解决方案 > 如何将每一行与相应列中的缩放器相乘?

问题描述

我有这个数据,最后一列是 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

标签: rdataframe

解决方案


这是一种方法。我们可以使用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)

推荐阅读