gpt4 book ai didi

r - R 中 data.frames 列表的子集

转载 作者:行者123 更新时间:2023-12-02 00:28:06 25 4
gpt4 key购买 nike

在我下面的函数中...代表任何向量(例如数字字符等)命名 由用户。例如,用户可以定义 age = 1:3prof = c("med", "low", "med")。这些额外的向量被添加到名为 outdata.frame 中。

我想知道是否有办法创建一个名为 extract 的新参数,以允许用户从最终输出 h 中提取子集。

例如,如果用户想要对 age == 2age == 2 & prof == "low" 进行子集化,则会返回输出中的相应匹配项通过使用extract=age==2&prof==“low”

foo <- function(d, per, ...){ ## Add a new argument called `extract`

out <- data.frame(d, ...)

h <- split(out, rep(seq_along(per), per)) ## `extract` should subset from `h`
return(h)
}
# Example of use:
foo(d = 2:4, per = 1:2, age = 1:3, prof = c("med", "low", "med"))

最佳答案

这不使用任何包,也没有显式使用eval

foo2 <- function(d, per, ..., extract = TRUE) {
out <- data.frame(...)
h <- split(out, rep(seq_along(per), per))
s <- substitute(extract)
lapply(h, function(x) do.call("subset", list(x, s)))
}


foo2(d = 2:4, per = 1:2, age = 1:3, prof = c("med", "low", "med"), extract = age == 2)

关于r - R 中 data.frames 列表的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56105087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com