Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 我能写这个';对于';更简单的代码?可能使用';应用';?_R_For Loop_Apply - Fatal编程技术网

R 我能写这个';对于';更简单的代码?可能使用';应用';?

R 我能写这个';对于';更简单的代码?可能使用';应用';?,r,for-loop,apply,R,For Loop,Apply,有没有一种方法可以在R中用更简单的术语编写此代码 可能使用应用 谢谢你给我小费 for(i in 1:nrow(mat1)){ mat1$c8[i] = formula(mat1$c1[i], mat1$c2[i], mat1$c3[i], mat1$c4[i], mat1$c5[i], mat1$c6[i], mat1$c7[i]) } 数据集: mat <- data.frame(c1 = sample(1:3, 100, replace = TRUE),

有没有一种方法可以在R中用更简单的术语编写此代码

可能使用
应用

谢谢你给我小费

for(i in 1:nrow(mat1)){
  mat1$c8[i] = formula(mat1$c1[i], mat1$c2[i], mat1$c3[i], mat1$c4[i], mat1$c5[i], mat1$c6[i], mat1$c7[i])
}
数据集:

mat <- data.frame(c1 = sample(1:3,  100, replace = TRUE), 
                  c2 = sample(1:4,  100, replace = TRUE), 
                  c3 = sample(1:2,  100, replace = TRUE), 
                  c4 = sample(1:2,  100, replace = TRUE), 
                  c5 = sample(0:1,  100, replace = TRUE), 
                  c6 = sample(0:1,  100, replace = TRUE), 
                  c7 = sample(0:1,  100, replace = TRUE)) 

mat1 <- mat

mat1

mat看起来你想做的事情有些不同寻常,但如果你坚持要做,你需要的是
Map()
mapply()
。这些函数将使用多个输入向量多次调用函数,将输出组合在一个列表中(
Map()
)或最简单的输出(
mapply()


mat$c8是您正在使用的
stats::formula
吗?看起来很奇怪…你能在这里发布mat1的样本数据吗?@Gregor'formula'只是我创建的一个函数的名称。抱歉,我不太清楚。@mso这是MAT1的数据集。您期望的输出是什么?你希望c8是什么?您可以只给出一个条目作为示例来澄清。Cheers@paleolimbot这非常有用
mat$c8 <- Map(formula, mat$c1, mat$c2, mat$c3, mat$c4, 
              mat$c5, mat$c6, mat$c7)
mat$c8 <- do.call(Map, c(list(formula), mat))