使用最大值突变IF-Else语句

Vizidea

我知道这应该很容易解决,但是由于某种原因,我没有得到想要的正确输出。我有一个很大的数据集,如果计数列标记为1并且该行的付款额最大,我将根据两个条件创建一个新列,然后创建一个新列标记为1并标记其他列为0。我创建了一个小示例:

ex <- data.frame(EOC = c(1,1,2,2,2),EOC_cnt = c(1,1,1,0,0), pay = c(500,0,200,12,34))

我想要的是:

ex <- data.frame(EOC = c(1,1,2,2,2),EOC_cnt = c(1,1,1,0,0), pay = c(500,0,200,12,34)),EOC_cnt1 = c(1,0,1,0,0)

我有:

out <- ex %>% group_by(EOC) %>% mutate(EOC_cnt1 = ifelse(EOC_cnt ==1 & pmax(pay) , "1", "0"))

这适用于这个较小的示例,但是当我将其应用于较大的数据集时,每个EOC组仍然没有得到一个1。还有其他方法可以得到想要的结果吗?

(我的EOC_cnt列中基本上有重复项,并且想创建一个新列,其中每个EOC都只有一个)

这是答案创建全0的示例:

dput(ex2)
structure(list(pay = c(342.39, 48.27, 299.96, 274.12, 342.39, 
121.36), EOC = c(1, 1, 1, 1, 1, 1), EOC_cnt = c(0, 1, 0, 0, 0, 
0)), row.names = c(NA, -6L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x000001cdf95a1ef0>)
阿克伦

我们不需要ifelse,可以使用+将其强制转换为二进制as.integer

ex %>% 
    group_by(EOC) %>% 
    mutate(EOC_cnt1 = +(pay == max(pay) & EOC_cnt == 1))

如果存在重复项,那么我们将使用match第一个为TRUE的位置

ex %>%
   group_by(EOC) %>%
   mutate(EOC_cnt1 =  +(row_number() %in% which(pay == max(pay) & EOC_cnt == 1)[1]))

基于新数据“ ex2”,我们不清楚是否仅需要max在“ EOC_cnt”为1的元素之间检查“ pay”的情况。在这种情况下,请基于“ EOC_cnt” 1来对“ pay”进行子集化值,进行max比较

ex2 %>% 
 group_by(EOC) %>% 
 mutate(EOC_cnt2 = +(pay == max(pay[EOC_cnt == 1]) & EOC_cnt == 1))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用if语句确定最大值

来自分类Dev

使用if语句过滤最小值/最大值R

来自分类Dev

使用多个else if语句

来自分类Dev

使用多个if else语句

来自分类Dev

使用多个if else语句

来自分类Dev

else语句不调整值

来自分类Dev

返回特定值的ELSE IF语句

来自分类Dev

If else语句删除重复值

来自分类Dev

对多个条件使用if else语句

来自分类Dev

使用else语句的语法无效

来自分类Dev

使用数组的多个if else语句

来自分类Dev

使用if-else语句发出

来自分类Dev

在JavaFX中使用If / Else语句

来自分类Dev

If else语句使用dict选择正确的值

来自分类Dev

如何使用if else语句中的值

来自分类Dev

if语句和Pascal中的最大值

来自分类Dev

在不使用if语句的情况下减小值并回绕到最大值?

来自分类Dev

if / else Javascript语句返回相反的值

来自分类Dev

JavaScript条件语句仅返回else值

来自分类Dev

基于列值的IF和ELSE语句

来自分类Dev

如何使用if语句向量化在numpy数组中查找最大值?

来自分类Dev

如何使用插入选择语句插入下一个最大值

来自分类Dev

使用mysql语句联接表并返回最大值而不是PHP数学

来自分类Dev

如何停止使用else语句打印Python if语句?

来自分类Dev

如何使用switch语句优化多个if-else语句?

来自分类Dev

使用双打时替代if else语句

来自分类Dev

在if / else语句中使用名称空间

来自分类Dev

使用else / if语句或SQL查询是否更快?

来自分类Dev

使用空检查简化If / Else语句