【发布时间】:2015-11-05 18:32:48
【问题描述】:
我需要对公式的每个变量执行循环。我的公式是:
> lr$formula
target ~ grupoAntig + nu_seguros_1TRUNC + cd_sexo + grupoEdad +
vl_limite_aeQU + vl_ltd_6QU + Revolv3 + nu_servicios_1TRUNC +
fl_cliente_hit + nu_resumen_6 + fl_rv
我想为每个变量运行一个 ddply。像下面的“grupoAntig”:
> ddply(muestra, .(grupoAntig), summarise, ratioTarget=sum(target)/length(target))
grupoAntig ratioTarget
1 20a40 0.01038062
2 h20 0.01201201
3 m40 0.00785325
所以我开始创建一个变量列表:
formula<-gsub(" ", "",as.character(lr$formula))
vars<-unlist(strsplit(formula, "[+]"))
如果我选择 vars[3] 我会得到:
> vars[3]
[1] "grupoAntig"
在 ddply(plyr 库)中,我需要引入不带分号的变量名。所以我尝试了:
> as.name(vars[3])
grupoAntig
但是当我在 ddply 中尝试时:
library(plyr)
ddply(muestra, .(as.name(vars[3])), summarise, ratioTarget=sum(target)/length(target))
我收到一条错误消息:
unique.default(x) 中的错误:
如何在 ddply 中使用每个变量名?
【问题讨论】:
标签: r loops text character plyr