Я пишу функцию отправки писем моим клиентам в R. Я использую пакет mailR для этого, но мой поставщик услуг разрешает мне отправлять 100 писем в час. То, что я хочу сделать, если предположить, что мой список адресов электронной почты содержит 270 адресов электронной почты, я хочу пролить это на chunk1=100 , chunk2 = 100 & chunk3 = 70
. Затем он должен отправить электронные письма на первый кусок, а затем ждать часа, а затем chunk2 и т. Д. Это моя функция.как разбить dataframe на определенное количество строк в if loop in R
email <- function(dataframe,city,date){
dataframe$registrant_email <- tolower(dataframe$registrant_email)
dataframe_city <- dataframe[dataframe$registrant_city == city & dataframe$create_date == date, ]
# Removing NA's and blank email ids
dataframe_city <- dataframe_city[!(is.na(dataframe_city$registrant_email)|dataframe_city$registrant_email==""), ]
# Removing duplicate email ids
dataframe_city <-dataframe_city[!duplicated(dataframe_city$registrant_email),]
emails <- as.vector(dataframe_city$registrant_email)
if(length(emails) > 100){
# divide the vector into chunks of 100
} else{send_email(emails}
return(emails)
}
Мне нужна помощь в if loop
, как я могу писать расщепляющую часть в кусок 100, а затем вызвать функцию send_email
ждать в течение часа и так далее.
Чтобы разделить вектор на куски в списке, вы можете использовать что-то вроде 'х <- 1: 270; chunks <- split (x, (seq_along (x) -1)% /% 100) ' –
Использование'% /% 'красиво, вы должны добавить его в качестве ответа. –
Не могли бы вы объяснить разницу с моим одним лайнером? Результат, похоже, тот же. Это объясняет какой-то особый случай? – LAP