Я, честно говоря, немного смущен тем, что вы спрашиваете.
Из того, что я понимаю, ваша проблема в том, что при запуске outsporzonaprueba(id)
кадры данных внутри функции (т. Е. o1
, o2
и o3
) не создаются.
Это правильно?
Если так, то это потому, что они определены внутри среды функции. Вы хотите, чтобы они были назначены в глобальной среде, поэтому используйте <<-
вместо <-
.
например.
id="187B339C-26F8-40A1-948F-0F9803761850"
outsporzonaprueba <- function(guid55) {
o1 <<- filter(mydata, ..., guid5==guid55)
o2 <<- filter(mydata, ..., guid5==guid55)
o3 <<- filter(mydata, ..., guid5==guid55)
}
opz <- outsporzonaprueba(id)
Безопасное решение
С <<-
есть небольшая проблема, а именно то, что он будет рекурсивно проверять родительские среды для назначенной переменной (а затем создавать переменную в глобальной области видимости, если она не найдена).
Если вы хотите быть уверенным в области, в которой определена ваша переменная, используйте assign()
:
outsporzonaprueba <- function(guid55) {
assign('o1', filter(mydata, ..., guid5==guid55), envir = .GlobalEnv)
assign('o2', filter(mydata, ..., guid5==guid55), envir = .GlobalEnv)
assign('o3', filter(mydata, ..., guid5==guid55), envir = .GlobalEnv)
}