取唯一计数并将R中的每个唯一值相加

编程入门 行业动态 更新时间:2024-10-24 07:28:10
本文介绍了取唯一计数并将R中的每个唯一值相加的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

案例1:输入

ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO FEATURE_CODE L_NU 7/27/16 7/27/16 265 O 15 1 INTEREST 855 7/27/16 7/27/16 265 O 14 1 INTEREST 855

预期输出

ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO FEATURE_INTEREST L_NU 7/27/16 7/27/16 265 O 29 1 2 855

案例2:输入(我的代码适用于case2但对case1抛出错误)

Case2: Input (my code is working for case2 but throwing error for case1)

ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO FEATURE_CODE L_NU 7/27/16 7/27/16 265 O 15 1 INTEREST 855 7/27/16 7/27/16 265 O 14 1 INSTALLMENT 855 ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO INTEREST INSTALLMENT L_NU 7/27/16 7/27/16 265 O 29 1 1 1 855 install_cntdup_less1 <- install_BAN %>% group_by(AB_NO,LO_NO,L_NU)%>% mutate(ACTV_AMT = sum(ACTV_AMT),ftr=sum(unique(!is.na(FEATURE_CODE))))%>% spread(FEATURE_CODE,ftr,fill = 0)%>% slice(which.min(as.Date(ST_DATE, '%Y/%m/%d')))%>% slice(which.max(as.Date(ND_DATE, '%Y/%m/%d')))

获取以下错误

Error: Duplicate identifiers for rows (29424, 29425, 29426), (7415, 7416), (30120, 30121)

尝试引入如下所述的唯一ID链接,但它弄乱了我的输出 使用重复的标识符进行传播(使用tidyverse和%>%)

tried introducing unique ID as mentioned below link but it is messing my output Spread with duplicate identifiers (using tidyverse and %>%)

mutate(ind = row_number()) %>%

我无法理解该做什么,任何人都可以帮助我解决错误。似乎重复的问题,但并非如此

I am unable to understand what to do can anyone help me in resolving the error. It may seem duplicate question but it is not

推荐答案

这将有所帮助:

library(dplyr) library(tidyr) # example data dt = read.table(text = " ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO FEATURE_CODE L_NU 7/27/16 7/27/16 265 O 15 1 INTEREST 855 7/27/16 7/27/16 265 OO 14 1 INTEREST 855 7/27/16 7/27/16 265 O 15 1 OTHER 855 7/27/16 7/27/16 265 OO 14 1 OTHER 855 ", header=T, stringsAsFactors = F) dt %>% group_by(AB_NO,LO_NO,L_NU)%>% mutate(ACTV_AMT = sum(ACTV_AMT), ST_DATE = min(ST_DATE), ND_DATE = max(ND_DATE)) %>% ungroup() %>% mutate(id = row_number(), FEATURE_CODE = paste0("FEATURE_", FEATURE_CODE), ACTV_CODE = paste0("ACTV_", ACTV_CODE), count_FEATURE = 1, count_ACTV = 1) %>% spread(FEATURE_CODE, count_FEATURE) %>% spread(ACTV_CODE, count_ACTV) %>% select(-id) %>% group_by(ST_DATE, ND_DATE, LO_NO, ACTV_AMT, AB_NO, L_NU) %>% summarise_all(sum, na.rm=T) %>% ungroup() # # A tibble: 1 x 10 # ST_DATE ND_DATE LO_NO ACTV_AMT AB_NO L_NU FEATURE_INTEREST FEATURE_OTHER ACTV_O ACTV_OO # <chr> <chr> <int> <int> <int> <int> <dbl> <dbl> <dbl> <dbl> # 1 7/27/16 7/27/16 265 58 1 855 2 2 2 2

更多推荐

取唯一计数并将R中的每个唯一值相加

本文发布于:2023-10-30 19:08:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1543734.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:并将   取唯一   唯一值

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!