R 我可以在函数中创建全局数据集吗

R 我可以在函数中创建全局数据集吗,r,assign,R,Assign,为了提高速度,我创建了一些始终可用的通用全局数据集。它们需要不时更新 我试图在一个函数中实现这一点,当数据集需要更新时,我将调用该函数 是否有任何方法可以在R中的函数中创建全局数据集?我知道assign函数,但我无法使该函数用于数据帧,只能用于变量 我该怎么做 x <- c(1,2,3,4) z <- function () x <- c(1,2,3,4,5,6,7,8,9,10) x我们可以使用我们可以使用 我知道assign函数,但我无法使该函数用于数据帧,只能用

为了提高速度,我创建了一些始终可用的通用全局数据集。它们需要不时更新

我试图在一个函数中实现这一点,当数据集需要更新时,我将调用该函数

是否有任何方法可以在R中的函数中创建全局数据集?我知道assign函数,但我无法使该函数用于数据帧,只能用于变量

我该怎么做

x <- c(1,2,3,4)

z <- function ()  x <- c(1,2,3,4,5,6,7,8,9,10)  
x我们可以使用
我们可以使用

我知道assign函数,但我无法使该函数用于数据帧,只能用于变量

奇数:
assign
对所有类型的对象都以相同的方式工作,无论其类型如何:

assign('name', object, environment)
在您的情况下,这将是:

assign('x', your_df, globalenv())
-但正如一篇评论中所提到的,修改函数作用域之外的对象是一个非常糟糕的主意(很少有例外)。函数工作的正确方法是从函数返回修改/创建的对象

要使用您的示例:

x <- c(1,2,3,4)

z <- function () c(1,2,3,4,5,6,7,8,9,10)

# Usage:

x <- z()
x
我知道assign函数,但我无法使该函数用于数据帧,只能用于变量

奇数:
assign
对所有类型的对象都以相同的方式工作,无论其类型如何:

assign('name', object, environment)
在您的情况下,这将是:

assign('x', your_df, globalenv())
-但正如一篇评论中所提到的,修改函数作用域之外的对象是一个非常糟糕的主意(很少有例外)。函数工作的正确方法是从函数返回修改/创建的对象

要使用您的示例:

x <- c(1,2,3,4)

z <- function () c(1,2,3,4,5,6,7,8,9,10)

# Usage:

x <- z()
x尝试
这是可能的,但强烈反对。修改全局范围的函数是反模式的。相反,您需要更改代码的数据访问逻辑以使其变得不必要。尝试使用
是可能的,但强烈建议不要这样做。修改全局范围的函数是反模式的。相反,您需要更改代码的数据访问逻辑,使其变得不必要。