r-如何在apply函数中转换嵌套的for循环



这里我已经嵌套了循环,我不知道如何将其转换为apply,有人能告诉我如何将其转化为apply函数吗

plans_achievements <- function(pa_m,pa_q){
if(nrow(pa_m)==0 & nrow(pa_q==0)){
df = data.frame(a = c(""), b = c("No Data Available"))
colnames(df)=""
}else{
pa_m= pa_m%>% select(inc,month_year,Plans,Achievements,quarter_year)
colnames(pa_mon)[2] = "Period"

pa_q= pa_q%>% select(inc,quarter_year,Plans,Achievements)
colnames(pa_qtr)[2] = "Period"

df = data.frame(inc=c(""),Period=c(""),Plans=c(""),Achievements=c(""))

for (q in unique(pa_q$Period)){
df1 = pa_q[pa_q$Period==q,]
df1$Period = paste0("<span style="color:#288D55">",df1$Period,"</span>")
df1$Plans = paste0("<span style="color:#288D55">",df1$Plans,"</span>")
df1$Achievements = paste0("<span style="color:#288D55">",df1$Achievements,"</span>")
df = rbind(df,df1)
for (m in unique(pa_m$quarter_year)){
if(m==q){
df2 = pa_m[pa_m$quarter_year==q,][-5]
df = rbind(df,df2)
}
}
}
df = df[-1,]
}

return(df)
}

DT::数据表(计划成就(pa_m[pa_m$inc=="vate",],pa_q[pa_q$inc=="vate",](,行名=F,转义=FALSE,选择=列表(模式="单个",目标="行"(,选项=列表(页面长度=50,滚动X=TRUE,dom="tp",排序=F,列定义=列表(列表(可见=FALSE,目标=c(0(((,列表(className="DT-l"eft',targets='_all'(((

我无法想象你为什么要这样做,那么矢量化函数呢?

请注意,下面已经更正了一些打字错误(pa_mon而不是pa_m等(

plans_achievements2 <- function(pa_m,pa_q){
if(nrow(pa_m)==0 & nrow(pa_q==0)){
df = data.frame(a = c(""), b = c("No Data Available"))
colnames(df)=""
}else{
pa_m= pa_m%>% select(inc,month_year,Plans,Achievements,quarter_year)
colnames(pa_m)[2] = "Period"

pa_q= pa_q%>% select(inc,quarter_year,Plans,Achievements)
colnames(pa_q)[2] = "Period"
df <- pa_q
df$Period <- paste0("<span style="color:#288D55">",df$Period,"</span>")
df$Plans = paste0("<span style="color:#288D55">",df$Plans,"</span>")
df$Achievements = paste0("<span style="color:#288D55">",df$Achievements,"</span>")
return(rbind(df, pa_m[pa_m$quarter_year %in% pa_q$Period,-5])[-1, ])
}
return(df)
}

最新更新