简体   繁体   中英

How to send multiple email when ids are store in one excel cell?

I have written loop for 1 email id in 1 excel cell but I am unable to write loop when multiple email ids are store in 1 excel cell

Here's a sample

| code   |      email.ids      |        cc            |
|  1     |abc@abc.in;aab@abc.in|as@abc.in;asdb@abc.com|
|  2     |as@abc.in;asdb@abc.in|as@abc.in;asdb@abc.com|

Code Column will be the value for "forloop".

you can use stringr::str_split(df$email.ids[row], ";") %>% flatten_chr() to extract and split the variable by a given pattern (here: ";"), assuming some consistency.

The following code will allow to work with each email in a nested loop:

library(tidyverse)
for (row in 1:nrow(df)) {
    code_i <- df$code[row]
    message("code:", code_i)
    
    vec_email_id <- stringr::str_split(df$email.ids[row], ";") %>% flatten_chr()
    vec_cc <- stringr::str_split(df$email.ids[row], ";") %>% flatten_chr()
    vec_all_mails <- c(vec_email_id, vec_cc)
    
    for (email in vec_all_mails) {
        message("email: ", email)
        # do something with email
    }
}
#> code:1
#> email: abc@abc.in
#> email: aab@abc.in
#> email: abc@abc.in
#> email: aab@abc.in
#> code:2
#> email: as@abc.in
#> email: asdb@abc.in
#> email: as@abc.in
#> email: asdb@abc.in

data

df <- read.delim(text = 
" code  |      email.ids      |        cc            
  1     |abc@abc.in;aab@abc.in|as@abc.in;asdb@abc.com
  2     |as@abc.in;asdb@abc.in|as@abc.in;asdb@abc.com
", header=TRUE, sep = "|")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM