在R中,如何对过滤其他条件的列分配进行矢量化?

在R中,如何对过滤其他条件的列分配进行矢量化?,r,R,我有一个数据表,我正在给它分配一个新的列,我正在尝试对下面的循环进行矢量化,以便我的代码能够更高效地运行。我已经研究过ifelse,但我认为它对数据表不起作用-如果我错了,请纠正我!我已经看到了Matlab和C++的答案,但在下面的R中我将如何帮助它。 for (i in 1:20610) { if (table$Delta[i] > 0) { table$CashFlow[i] = -1*table$Buy[i]*table$Delta[i] } else {

我有一个数据表,我正在给它分配一个新的列,我正在尝试对下面的循环进行矢量化,以便我的代码能够更高效地运行。我已经研究过ifelse,但我认为它对数据表不起作用-如果我错了,请纠正我!我已经看到了Matlab和C++的答案,但在下面的R中我将如何帮助它。
for (i in 1:20610) {
  if (table$Delta[i] > 0) {
    table$CashFlow[i] = -1*table$Buy[i]*table$Delta[i]
  }
  else {
    table$CashFlow[i] = -1*table$Sell[i]*table$Delta[i]
  }
}
谢谢大家!


我们可以使用
ifelse

table$CashFlow <- with(table, ifelse(Delta > 0,  -1*Buy*Delta, -1*Sell*Delta))
数据
set.seed(24)

你能分享示例数据和预期输出吗?你能计算出-Delta。
table[-1][with(table, cbind(1:nrow(table), (Delta <= 0)+1))]*-1 * table$Delta
set.seed(24)
table <- data.frame(Delta = rnorm(5), Buy = sample(1:10, 5,
        replace = TRUE), Sell = sample(1:7, 5, replace = TRUE))