【问题标题】:Condition for multiplying columns列相乘的条件
【发布时间】:2023-01-23 21:30:16
【问题描述】:

我试图在某些条件下将第一列与随后的第二列相乘。 主要条件是第一行有10个。下面你可以看到我的数据。

df<-data.frame(  
  Stores=c(10,30,10,0,10),
  Value1=c(10,10,0,100,0),
  Value2=c(10,10,0,100,0),
  Value3=c(10,0,0,0,0),
  Value4=c(10,10,0,0,0)
)

df

因此乘法值适用于此命令但没有任何条件。

df[,1] * df[seq(3,ncol(df), by = 2)]

现在我想为第一行数据设置条件。我在下面尝试使用此命令,但效果不佳。

ifelse(df[,1]==10,1,0) * df[seq(3,ncol(df), by = 2)]

那么任何人都可以帮助我解决这个问题并仅当标题为Stores 的第一列为数字 10 时才乘以值吗?

【问题讨论】:

  • 您的预期输出是什么?

标签: r dplyr


【解决方案1】:

您可以使用 df$Stores == 10 扩展您的选择,例如

df[df$Stores == 10, 1] * df[df$Stores == 10, seq(3, ncol(df), by = 2)]
  Value2 Value4
1    100    100
3      0      0
5      0      0

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2021-07-17
    • 2022-08-19
    相关资源
    最近更新 更多