2015-09-07 3 views
1

Я пытаюсь применить all.equal к нескольким объектам одновременно.применить all.equal к нескольким объектам

мой исходный код выглядит следующим образом:

all.equal(1,1.01, tolerance = 1e-1) 

Это один из способов сделать это:

objs <- mget(c(1,1.01,1.02)) 
outer(objs, objs, Vectorize(all.equal)) 

, но я не могу понять, как включить утверждение толерантности.

Любые мысли?

+0

Я получаю сообщение об ошибке при запуске вашей строки 'mget'. Я не уверен, что вы пытаетесь сделать, но, возможно, это так: 'sapply (x, FUN = function (x) {all.equal (1, x, tolerance = 1e-1)})' where 'x = c (1,1.01,1.02) ' – pcantalupo

+0

возможно это ->' внешний (objs, objs, FUN = function (a, b, toler) {mapply (function (x, y) {all.equal (x, y , допускается)}, a, b)}, toler = 1e-1) ' – digEmAll

+0

это правильно – ulrich

ответ

0

Как насчет этого?

vec = c(1,1.01,1.02) 
all(abs(diff(vec)) <= 0.01 + .Machine$double.eps) 
Смежные вопросы