gpt4 book ai didi

r - 表中的 if/else 语句

转载 作者:行者123 更新时间:2023-12-04 09:15:04 27 4
gpt4 key购买 nike

比方说,我有一个名为 table 的表标题看起来像

A B
1 2
2 1

我想做的是添加一个新列 table$C这样

  1. 如果table$A < table$B然后 table$C <- (table$B-table$A)/table$A
  2. 如果table$A > table$B然后 table$C <- (table$B-table$A)/table$B

对于每一行,结果表看起来像

A B C
1 2 1
2 1 -1

我很天真地尝试过,
> table$C <- if (table$A < table$B) (table$B-table$A)/table$A else (table$B-table$A)/\table$B

> table$C <- ifelse(table$A < table$B, (table$B-table$A)/table$A, (table$B-table$A)/table$B)
但他们都没有工作。我该怎么做?

最佳答案

像往常一样,很多方法可以实现这一点。假设您的规则保持不变并且您从来没有被零除的情况,这里有一些想法......

df <- data.frame(A = c(1, 2), B = c(2, 1))

# Making use of pmin.
df$c <- (df$B - df$A) / pmin(df$A, df$B)

# Making use of 'with' ( See ?with )
df$C <- with(df, (B - A)/pmin(A, B))

# Making use of data.table.
library(data.table, quiet = TRUE)

## data.table 1.8.2 For help type: help("data.table")

dt <- data.table(df)

dt[, `:=`(C, (B - A)/pmin(A, B))]

## A B C
## 1: 1 2 1
## 2: 2 1 -1

关于r - 表中的 if/else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223628/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com