如何创建一个 command/function/shortcut 来调用 R 中的一大块代码?

How to create a command/function/shortcut to call a chunk of codes in R?

有没有办法创建一个command/function/shortcut来调用代码块? 这与我们在脚本中屏蔽某些代码行,然后按 Ctrl+Enter(在 Windows 中)是一样的。 我想在没有脚本的情况下调用代码块。 我只知道我们可以创建一个带变量的函数。当然不能像下面这样应用,因为我们必须输入变量,对吗?

make_dfs<- function() {
  df1<-data.frame(a=1, b=2, c=3)
  df2<-data.frame(d=4, e=5, f=6)
  df3<-data.frame(g=7, h=8, i=9)}

在上面的示例中,我想通过键入“make_dfs”立即创建 df1、df2 和 df3。 这样做的动机是当我想清理环境中的临时元素时,我倾向于认为“也许将来我需要再次创建相同的元素”。

我找不到合适的关键字来解决这个问题,导致搜索不成功。 我对 R 和编程还是很陌生。 有没有什么办法或者我的思路不对,请赐教

谢谢。

您要在全局环境中创建 df1df2df3 吗?

试试这个 -

make_dfs<- function() {
  list2env(list(df1 = data.frame(a=1, b=2, c=3),
       df2 = data.frame(d=4, e=5, f=6),
       df3 = data.frame(g=7, h=8, i=9)), .GlobalEnv)
}
make_dfs()

我们可以使用assign

make_dfs <- function() {
   assign("df1", data.frame(a = 1, b = 2, c = 3), .GlobalEnv)
   assign("df2", data.frame(d = 4, e = 5, f = 6), .GlobalEnv)
   assign("df3", data.frame(g = 7, h = 8, i = 9), .GlobalEnv)
}

-测试

make_dfs()

-检查全局环境中的对象

> df1
  a b c
1 1 2 3
> df2
  d e f
1 4 5 6
> df3
  g h i
1 7 8 9