R的If-else函数

R的If-else函数,r,if-statement,R,If Statement,我的数据框架如下: 'data.frame': 7 obs. of 3 variables: $ Currency : Factor w/ 3 levels "EUR","GBP","USD": 3 3 1 2 3 1 2 $ Amount.LC: int 100 500 400 200 350 100 500 $ FX.Rate : Factor w/ 3 levels "0,89","1,201",..: 2 2 3 1 2 3 1 for (i in df$Currenc

我的数据框架如下:

'data.frame':   7 obs. of  3 variables:
 $ Currency : Factor w/ 3 levels "EUR","GBP","USD": 3 3 1 2 3 1 2
 $ Amount.LC: int  100 500 400 200 350 100 500
 $ FX.Rate  : Factor w/ 3 levels "0,89","1,201",..: 2 2 3 1 2 3 1
for (i in df$Currency){if (i == "EUR"){df$Amount.GC <- df$Amount.LC}
else{df$Amount.GC <- c(df$Amount.LC)/c(df$FX.Rate)}}
基于if-else函数,我尝试计算一个新列,名为Amount.GC,这取决于欧元是否为列货币。如果欧元超过,我希望与Amount.LC列中的值相同。否则,我想对Amount.LC和FX.Rate Amount.LC/FX.Rate进行分割

我的代码如下:

'data.frame':   7 obs. of  3 variables:
 $ Currency : Factor w/ 3 levels "EUR","GBP","USD": 3 3 1 2 3 1 2
 $ Amount.LC: int  100 500 400 200 350 100 500
 $ FX.Rate  : Factor w/ 3 levels "0,89","1,201",..: 2 2 3 1 2 3 1
for (i in df$Currency){if (i == "EUR"){df$Amount.GC <- df$Amount.LC}
else{df$Amount.GC <- c(df$Amount.LC)/c(df$FX.Rate)}}

不幸的是,它不起作用。谁能帮帮我吗

如评论中所述,您不需要forloop。您可以在ifelse条件下执行所有操作,并将结果直接分配给新列

df = data.frame(
  Currency = sample(c("EUR", "GBP", "USD"), size = 10, replace = T),
  Amount.LC = sample(c(100,200,300,400,500), size=10, replace = T),
  FX.Rate = sample(c(0.89, 1.201, 1,5), size=10, replace=T)
)


df$Amount.GC = ifelse(df$Currency == "EUR", df$Amount.LC, (df$Amount.LC/df$FX.Rate))

df
阅读有关ifelse无需forloop的信息。