r - 参数化全局环境中输出数据帧的名称,分配给函数
问题描述
尝试将我希望它命名为它创建的数据框的函数传递给函数,然后将其保存到全局环境中。
我正在尝试通过过滤值来自动创建作为其他数据帧子集的数据帧;因为我正在创建其中的 43 个,所以我正在编写一个可以自动执行的函数:
- a)将包含某个字符串的子集行放入它自己的data.frame然后
- b)在该字符串之后命名一个数据框并将其保存到我的全局环境中。(a)中的字符串也是我希望它在b)中命名data.frame的后缀)
我可以做到 a) 很好,但在 b) 方面遇到了麻烦。
假设我有一个数据集,其中包含一个名为“团队”的列(详细说明该成员所属的团队):
original.df <- read_csv("../original_data_set")
我创建了一个函数来根据其中一列中的值拆分该数据集......
split.function <- function(string){
x <- original.df
as.name(string) <<- filter(x, str_detect(`Team`, string))
}
...然后使用名称保存数据框:
split.by.candidate('Team.Curt')
我不断得到:
> Error in as.name(x) <<- filter(y, str_detect(`Receiving Committee`, x)) :
object 'x' not found
但是当我使用包含术语的行执行此操作时,我只想在我的全局环境中看到Team.Curt
保存为 data.frameTeam.Curt
解决方案
您可以使用assign
基于字符串创建对象:
split.function <- function(string){
x <- original.df
assign(string, filter(x, str_detect(`Team`, string)), envir = .GlobalEnv)
}
在这里,envir = .GlobalEnv
用于将值分配给全局环境。
推荐阅读
- python - 从维基百科表中抓取数据
- java - 如何在java上对重复数据的数组值求和
- django - 使用 Django 进行 Keycloak 单次注销
- android - 扩展微调器无法单击
- c# - c# String Query - 获取最新的文件版本
- wordpress - 主题中设置标题的多站点 Wordpress API CORS 问题(v5)
- javascript - 如何在Javascript中获取由C#动态创建的单选按钮的文本?
- r - 在R中将字符串值转换为日期
- dart - ListWheelScrollView 子项无法识别 onTap()
- charts - 如何使用 Google Data Studio 格式化散点图中的点数据标签?