Jeff Newmiller
2021-Jul-02 22:35 UTC
[R] add a variable a data frame to sequentially count unique rows
It is poor analytical design to keep duplicates. If they are not duplicates then there should be a distinguishing additional column. IMO you should re-think your analysis rather than accomplish this short-term goal only to find down the road that this duplication causes future problems. On July 2, 2021 3:27:21 PM PDT, Yuan Chun Ding <ycding at coh.org> wrote:>Hi R users, > >In this test file, >test <- data.frame(group1=c("g1", "g1", "g1", "g2", "g2", "g2", "g2", >"g2", "g2"), > group2=c("k1", "a2", "a2", "c5", "n6", "n6", "n6", "m10","m10"), > count= c( 1, 1, 2, 1, 2, 2, 2, 3, 3 )); > >I have group 1 and group2 variable and want to add the count variable >to sequentially count unique rows defined by group1 and group2. > >I hope to use the following functions in library (tidyverse), No one >worked well. >test %>% group_by(group1, group2) %>% mutate(count = row_number()) >test %>% group_by(group1, group2) %>% mutate(count = 1:n()) >test %>% group_by(group1, group2) %>% mutate(count = seq_len(n())) >test %>% group_by(group1, group2) %>% mutate(count = seq_along(group1, >group2)) > >Can you help me to make the third column in the test data frame? > >Thank you, > >Ding > >---------------------------------------------------------------------- >------------------------------------------------------------ >-SECURITY/CONFIDENTIALITY WARNING- > >This message and any attachments are intended solely for the individual >or entity to which they are addressed. This communication may contain >information that is privileged, confidential, or exempt from disclosure >under applicable law (e.g., personal health information, research data, >financial information). Because this e-mail has been sent without >encryption, individuals other than the intended recipient may be able >to view the information, forward it to others or tamper with the >information without the knowledge or consent of the sender. If you are >not the intended recipient, or the employee or person responsible for >delivering the message to the intended recipient, any dissemination, >distribution or copying of the communication is strictly prohibited. If >you received the communication in error, please notify the sender >immediately by replying to this message and deleting the message and >any accompanying files from your system. If, due to the security risks, >you do not wish to receive further communications via e-mail, please >reply to this message and inform the sender that you do not wish to >receive further e-mail from the sender. (LCP301) > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.-- Sent from my phone. Please excuse my brevity.
Yuan Chun Ding
2021-Jul-02 22:42 UTC
[R] add a variable a data frame to sequentially count unique rows
Hi Jeff, Thank you for your quick response!! I made this following summary file, however, I want to add the count number sequentially into the original file, because I have several more columns to explain or annotate the first two columns. count_test <- test %>% group_by(group1 ) %>%summarise(Number_of_region = n_distinct(group2)) Ding -----Original Message----- From: Jeff Newmiller [mailto:jdnewmil at dcn.davis.ca.us] Sent: Friday, July 2, 2021 3:36 PM To: r-help at r-project.org; Yuan Chun Ding <ycding at coh.org>; r-help at r-project.org Subject: Re: [R] add a variable a data frame to sequentially count unique rows It is poor analytical design to keep duplicates. If they are not duplicates then there should be a distinguishing additional column. IMO you should re-think your analysis rather than accomplish this short-term goal only to find down the road that this duplication causes future problems. On July 2, 2021 3:27:21 PM PDT, Yuan Chun Ding <ycding at coh.org> wrote:>Hi R users, > >In this test file, >test <- data.frame(group1=c("g1", "g1", "g1", "g2", "g2", "g2", "g2", >"g2", "g2"), > group2=c("k1", "a2", "a2", "c5", "n6", "n6", "n6", "m10","m10"), > count= c( 1, 1, 2, 1, 2, 2, 2, 3, 3 )); > >I have group 1 and group2 variable and want to add the count variable >to sequentially count unique rows defined by group1 and group2. > >I hope to use the following functions in library (tidyverse), No one >worked well. >test %>% group_by(group1, group2) %>% mutate(count = row_number()) test >%>% group_by(group1, group2) %>% mutate(count = 1:n()) test %>% >group_by(group1, group2) %>% mutate(count = seq_len(n())) test %>% >group_by(group1, group2) %>% mutate(count = seq_along(group1, >group2)) > >Can you help me to make the third column in the test data frame? > >Thank you, > >Ding > >---------------------------------------------------------------------- >------------------------------------------------------------ >-SECURITY/CONFIDENTIALITY WARNING- > >This message and any attachments are intended solely for the individual >or entity to which they are addressed. This communication may contain >information that is privileged, confidential, or exempt from disclosure >under applicable law (e.g., personal health information, research data, >financial information). Because this e-mail has been sent without >encryption, individuals other than the intended recipient may be able >to view the information, forward it to others or tamper with the >information without the knowledge or consent of the sender. If you are >not the intended recipient, or the employee or person responsible for >delivering the message to the intended recipient, any dissemination, >distribution or copying of the communication is strictly prohibited. If >you received the communication in error, please notify the sender >immediately by replying to this message and deleting the message and >any accompanying files from your system. If, due to the security risks, >you do not wish to receive further communications via e-mail, please >reply to this message and inform the sender that you do not wish to >receive further e-mail from the sender. (LCP301) > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-hel >p__;!!Fou38LsQmgU!6hr10CQQybFHF0rsNtkWtEHa_9iV_iYS8khF0fy8MDanYoQM40_aN >bjXXLLn$ >PLEASE do read the posting guide >https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html >__;!!Fou38LsQmgU!6hr10CQQybFHF0rsNtkWtEHa_9iV_iYS8khF0fy8MDanYoQM40_aNV >Lja7f2$ and provide commented, minimal, self-contained, reproducible >code.-- Sent from my phone. Please excuse my brevity.