r - 有没有办法在 R 函数中为数据框中的每个子集赋予不同的对象名称?
问题描述
我需要从一个 data.frame 制作不同的子集,然后将这些不同的子集用于后续操作。因此,我需要给每个子集一个唯一的名称。我尝试编写不同的函数,但不知道如何编写。
在这里,我展示了一个子集的函数,即datsub:
run_subsets <- function(data, t, x) {
datsub <- data[eval(substitute(t),data), ]
}
run_subsets(data=dat, t=type=="AM", x=datsub1)
但是我需要为每个不同的子集使用不同的名称,因此在 *datsub" 旁边,例如
datsub1
datsub2等我已经尝试过的内容:
run_subsets <- function(data, t, x) {
datsub <- data[eval(substitute(t),data), ]
x <- datasub
}
run_subsets(data=dat, t=type=="AM", x=datsub1)
run_subsets <- function(data, t, x) {
datsub <- data[eval(substitute(t),data), ]
gsub("b", "x", "datsub")
run_subsets(data=dat, t=type=="AM", x=b1)
run_subsets <- function(data, t, x) {
datsub <- data[eval(substitute(t),data), ]
list(substitute(x)) <- datsub
run_subsets(data=dat, t=type=="AM", x=datsub1)
run_subsets <- function(data, t, x) {
datsub <<- data[eval(substitute(t),data), ]
data_name <- paste("datsub", x, sep=".")
assign(data_name, datsub)
save(list = data_name, file = paste0("datsub", scenario, ".Rdata"))
}
run_subsets(data=dat, t=type=="AM", x=datsub1)
和 withquote()
和这些也与eval()
, 和许多其他组合。
有人可以帮我吗?
先感谢您,
罗伯托
PS 我真的在互联网和 Stackoverflow 上搜索了很多东西,发现了很多看起来很有希望的东西,但在这个功能中它需要别的东西。
解决方案
也许您最好动态创建子集。一种解决方案可能是您创建一个带有“子集”列的数据框,如下所示:
df <- data.frame(
a = 1:10
, b = letters[1:10]
)
subsets <- data.frame(
datsub1 = df$b == "d"
, datsub2 = df$a < 5
)
df[subsets$datsub1, ]
df[subsets$datsub2, ]
您还可以在同一数据框中创建“子集”列。这就是我通常做的,以保持我的工作空间干净。
推荐阅读
- sql - 尝试根据日期范围查询数据,但仅查询一个时间点
- r - 错误:尝试在 jupyter notebook 中使用 olsrr 库
- node.js - 为什么在线几个小时后出现 503 错误?节点/快递
- reactjs - 查看未找到名称 div 的配置
- c - 通过strtok将ac字符串分解成token
- android - 如何防止在 ViewPager2 中滚动时单击?
- c# - “dotnet ef 数据库更新”失败(外键约束失败)
- protractor - 断言请求 URL 是使用量角器指定的 URL
- python - 在 PyCharm 之外运行代码时出现 ModuleNotFoundError
- terraform - 如何重新运行 terraform 资源文件配置器