当前位置: 首页 > 知识库问答 >
问题:

如何使用函数中传递的参数动态命名R函数中的数据集?

彭华皓
2023-03-14

我尝试使用以下代码来完成此操作:

sim<-function(df,df1){

y<-df1

assign(paste(y),data.frame(Var1=numeric(), Var2=numeric(), Var3=numeric(),
                             Var4=numeric()),envir=.GlobalEnv)

colnames(df)[2]<-paste(y)

return(names(df))
}

sim(test,"test")  

colnames(test)

我得到以下输出:

sim(测试,“测试”)

共有1个答案

汝志
2023-03-14

我只是想出了点什么。函数没有更改“test”的colnames的原因是R不能更改函数中的全局数据帧,除非更改也是全局的。

因此,我能想到的唯一修复方法是使用assign函数将修改赋给全局数据帧'test',我只做了覆盖'test'

sim<-function(df,df1){

y<-df1    
assign(paste(y),data.frame(Var1=numeric(), Var2=numeric(), Var3=numeric(),
                             Var4=numeric()),envir=.GlobalEnv)

colnames(df)[2]<-paste(y)    
assign(paste(y),df,envir=.GlobalEnv)
}

sim(test,"test")  

colnames(test)

结果是这样的:

sim(测试,“测试”)

colnames(测试)

[1]“var1”“测试”“var3”“var4”

 类似资料:
  • 问题内容: 以传统方式添加事件侦听器: 但是我想适应addEventListener的方式: 它不起作用,因为我无法将getSelection()中的任何参数作为addEventListener方法中的第二个参数传递?据我所知,我只能使用没有括号的函数名。 任何的想法? 问题答案: 无需传递任何内容。用于的函数将自动绑定到当前元素。只需在您的函数中使用: 如果要将任意数据传递给函数,请将其包装在您

  • 问题内容: 这是一个简单程序的概述 我只是不断获取“未定义全局名称foo” .....有人可以帮我吗?谢谢! 问题答案: 代码段必须是独立的-它们不能进行外部引用。您必须在statement-string或setup-string中定义值: 更好的是,重写代码以不使用全局值。

  • 本文向大家介绍如何在PowerShell函数中传递参数?,包括了如何在PowerShell函数中传递参数?的使用技巧和注意事项,需要的朋友参考一下 您可以在PowerShell函数中传递参数,并且要捕获这些参数,需要使用参数。通常,当您在函数外部使用变量时,您实际上不需要传递参数,因为变量本身是Public,可以在函数内部访问。但是在某些情况下,我们需要将参数传递给函数,下面的示例说明了如何编写该

  • 问题内容: 请告知如何将参数传递给使用的函数。 我的例子是不正确的。 问题答案: 您需要创建一个匿名函数,以便不会立即执行实际函数。

  • 基于这个线程,我创建了一个动态列名w/dplyr::mutate(),在'dplyr'中使用动态变量名,现在我想对新列进行排序。。。。但我没有正确传递列名

  • 问题内容: 我想在警报窗口中显示该人的电子邮件。但是,我不知道如何将电子邮件作为参数传递给displayAlert方法。此外,它也不会让我使用。因此,我必须将displayAlert方法分配给变量,并在onClick中使用它。我不知道为什么它不能让我直接调用它。 问题答案: ES6方式 : 使用箭头功能 匿名函数被调用并执行 ES5方式: 您可以使用并在其中传递参数来执行此操作。 您还应该传递或使