sp_executesql медленно работает с параметрами

Невозможно постоянно изменять, как изменяются переменные, потому что это нарушит множество функций. Поведение, которое вам не нравится, на самом деле очень полезно во многих случаях.

Если переменная не найдена в функции, R проверяет среду, в которой функция была определена для такой переменной. Вы можете изменить эту среду с помощью функции environment(). Например

environment(sum) <- baseenv()
sum(4,5)
# Error in sum(4, 5) : object 'sUm' not found

Это работает, потому что baseenv() указывает на «базовую» среду, которая пуста. Однако обратите внимание, что у вас нет доступа к другим функциям с помощью этого метода

myfun<-function(x,y) {x+y}
sum <- function(x,y){sum = myfun(x+y); return(sUm)}

environment(sum)<-baseenv()
sum(4,5)
# Error in sum(4, 5) : could not find function "myfun"

, поскольку в функциональном языке, таком как R, функции являются просто регулярными переменными, которые также ограничены средой, в которой они определены и не будут доступны в базовой среде.

Вы должны вручную изменить среду для каждой функции, которую вы пишете. Опять же, нет способа изменить это поведение по умолчанию, потому что многие из базовых функций и функций R, определенных в пакетах, полагаются на это поведение.

13
задан m__ 8 June 2012 в 00:59
поделиться