【问题标题】:Multiply columns乘以列
【发布时间】:2019-03-20 03:03:40
【问题描述】:

样本数据

data=data.frame("a1" = c(11:14,NA),
                "a2"=c(23:27),
                "b1"=c(0,0,1,1,1),
                "b2"=c(1,1,0,0,1),
                "WANT1" = c(0,0,13,14,NA),
                "WANT2" = c(23,24,0,0,27))

数据有 a1 a2 b1 b2。我想创建 WANT1 和 WANT2。 WANT1=a1 乘以 b1。 WANT2 等于 a2 乘以 b2。有没有办法一次性计算出来?

我做到了

WANT1 = a1*b1

这似乎有效,但我有很多行,所以有更有效的方法吗?

【问题讨论】:

  • data$WANT1 <- data$a1 * data$b1?
  • 你需要data[paste0("WANT", 1:2)] <- data[1:2] * data[3:4]
  • 行数与你写的表达式无关,例如,可以transform(data, WANT1 = a1*b1, WANT2 = a2*b2)

标签: r multiple-columns


【解决方案1】:

你可以简单地做-

data=data.frame("a1" = c(11:14,NA),
                "a2"=c(23:27),
                "b1"=c(0,0,1,1,1),
                "b2"=c(1,1,0,0,1))


> data.table::setDT(data)[,c("want1","want2"):= list(a1*b1,a2 *b2)]
> data
   a1 a2 b1 b2 want1 want2
1: 11 23  0  1     0    23
2: 12 24  0  1     0    24
3: 13 25  1  0    13     0
4: 14 26  1  0    14     0
5: NA 27  1  1    NA    27

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2021-07-30
    • 1970-01-01
    • 2019-06-09
    • 2012-09-17
    相关资源
    最近更新 更多