具有不同值的R循环
有没有一种方法可以创建彼此不同的循环索引,而不必像我在这里使用if语句那样进行组合具有不同值的R循环,r,loops,if-statement,R,Loops,If Statement,有没有一种方法可以创建彼此不同的循环索引,而不必像我在这里使用if语句那样进行组合 for (i in names(Category[,-c(1:2, 13:63)])){ for (j in names(Category[,-c(1:2, 13:63)])){ for (z in names(Category[,-c(1:2, 13:63)])){ for (t in names(Category[,-c(1:2, 13:63)])){ for (k in names(Cat
for (i in names(Category[,-c(1:2, 13:63)])){
for (j in names(Category[,-c(1:2, 13:63)])){
for (z in names(Category[,-c(1:2, 13:63)])){
for (t in names(Category[,-c(1:2, 13:63)])){
for (k in names(Category[,-c(1:2, 13:63)])){
for (m in names(Category[,-c(1:2, 13:63)])){
for (l in names(Category[,-c(1:2, 13:63)])){
for (r in names(Category[,-c(1:2, 13:63)])){
for (s in names(Category[,-c(1:2, 13:63)])){
for (d in names(Category[,-c(1:2, 13:63)])){
if (z!=j & j!=i & z!=i & t!=z & t!=j & t!=i & k!=t & k!=z & k!=j & k!=i& m!=i & m!=z & m!=j & m!=t & m!=k & l!=i & l!=z & l!=j & l!=t & l!=k & l!=m & r!=i & r!=z & r!=j & r!=t & r!=k & r!=m & r!=l & s!=i & s!=z & s!=j & s!=t & s!=k & s!=m & s!=l & s!=r & d!=i & d!=z & d!=j & d!=t & d!=k & d!=m & d!=l & d!=r & d!=s ){
n<-n+1
assign(paste0("model_",n),lmer(
as.formula(
paste(
names(Category)[2], "~" ,paste(i, "+", j ,"+",z, "+",t, "+",k, "+",m, "+",l, "+",r, "+",s, "+",d),
'+ (1|', names(Category)[1], ')'
)
),
data=Category)) }}}}}}}}}}}
for(名称中的i(类别[,-c(1:2,13:63)]){
(名称上的j(类别[,-c(1:2,13:63)]){
(名称中的z(类别[,-c(1:2,13:63)]){
(名称中的t(类别[,-c(1:2,13:63)]){
(名称中的k(类别[,-c(1:2,13:63)]){
(名称中的m(类别[,-c(1:2,13:63)]){
(名称中的l(类别[,-c(1:2,13:63)]){
(名称上的r(类别[,-c(1:2,13:63)]){
(以名称命名的类别[,-c(1:2,13:63)]){
(d类名称(类别[,-c(1:2,13:63)]){
如果(z)和(j)和(j)和(j)和(j)和(j)和(j)和(j)和(j)和(k)t和k)t和k(t和k)k和k(k和k)k和k(m)和(m)和(m)m和(m)m和(m)m和(m)和(m)中国和j和j和j(j和j和j和j两两个中国(j和k)和k(m)m两个中国和(m)m m m两个m m两m m m m m m两m两个m(m和m)m m m两m m m m m m m m两个m和m(m和m)m m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两m两z&d!=j&d!=t&d!=k&d!=m&d!=l&d!=r&d!=s){
n我想您正试图通过获取所有可能的变量组合来生成一组公式。请查看expand.grid
和apply
。下面是一个小示例:
df <- data.frame("a"=letters[6:10],
"b"=letters[1:5],
"c"=letters[11:15])
df <- expand.grid(df)
apply(df[1:10,], MARGIN=1, FUN=function(x) paste("y ~",paste0(x,collapse = "+")))
如果没有可复制的示例,很难提供更具针对性的帮助。您在这里到底想做什么?我最终使用了combn.x=名称(类别[,-c(1:2)]),y=10,组合
1 2 3 4 5 6
"y ~ f+a+k" "y ~ g+a+k" "y ~ h+a+k" "y ~ i+a+k" "y ~ j+a+k" "y ~ f+b+k"
7 8 9 10
"y ~ g+b+k" "y ~ h+b+k" "y ~ i+b+k" "y ~ j+b+k"