【发布时间】:2016-05-18 20:22:43
【问题描述】:
我使用的数据框是
> df <- data.frame(Name=c("Joy","Jane","Jack","Jad"),M1=c(10,40,55,90))
> df
Name M1
1 Joy 10
2 Jane 40
3 Jack 55
4 Jad 90
> df$Final <- ifelse(df$M1<=50,60,max(75,df$M1))
> df
Name M1 Final
1 Joy 10 60
2 Jane 40 60
3 Jack 55 90
4 Jad 90 90
如果 M1 值小于或等于 50,那么我需要 60 作为我的最终值,而如果 M1 值大于 50,那么我需要最大值 m(75,M1)。在 Jack 的情况下,M1 是 55,所以我应该得到 max(75,55),即 75。我认为它给了我整个 M1 列的最大值。如何避免这种情况?
期望的输出
Name M1 Final
1 Joy 10 60
2 Jane 40 60
3 Jack 55 75
4 Jad 90 90
【问题讨论】:
-
pmax(df$M1, c(60, 75)[1 + (df$M1 > 50)])
-
就像 Imo 所说,只需将
max更改为pmax就可以了
标签: r if-statement dataframe