在R中的数据框中存储函数
Storing functions in dataframe in R
我正在做一些贝叶斯分析并且有许多特征的经验分布(即每个特征一个分布)。我想将特征索引、它们的分布函数和一些其他信息存储在数据框或 tibble 中,每个特征一行,对于方便进一步使用。
但我认为 R 中的 data.frame
或 tibble
函数不允许将函数作为其输入。有没有另一种方法可以将它们保存为数据帧类型的结构?
提前致谢!
您可以将函数存储在列表中:
> list(mean, median)
[[1]]
function (x, ...)
UseMethod("mean")
<bytecode: 0x000002b3fdfb77d0>
<environment: namespace:base>
[[2]]
function (x, na.rm = FALSE, ...)
UseMethod("median")
<bytecode: 0x000002b3f95dd3f8>
<environment: namespace:stats>
您可以将这些函数存储为 data.table 或 tibble 的一部分,就像这个例子:
data.table(id=c(1,2,3), dist_funcs = list(pnorm, ppois, pbinom))
输出:
id dist_funcs
<num> <list>
1: 1 <function[1]>
2: 2 <function[1]>
3: 3 <function[1]>
与 tibbles 类似:
tibble(id=c(1,2,3), dist_funcs = list(pnorm, ppois,pbinom))
输出:
id dist_funcs
<dbl> <list>
1 1 <fn>
2 2 <fn>
3 3 <fn>
我正在做一些贝叶斯分析并且有许多特征的经验分布(即每个特征一个分布)。我想将特征索引、它们的分布函数和一些其他信息存储在数据框或 tibble 中,每个特征一行,对于方便进一步使用。
但我认为 R 中的 data.frame
或 tibble
函数不允许将函数作为其输入。有没有另一种方法可以将它们保存为数据帧类型的结构?
提前致谢!
您可以将函数存储在列表中:
> list(mean, median)
[[1]]
function (x, ...)
UseMethod("mean")
<bytecode: 0x000002b3fdfb77d0>
<environment: namespace:base>
[[2]]
function (x, na.rm = FALSE, ...)
UseMethod("median")
<bytecode: 0x000002b3f95dd3f8>
<environment: namespace:stats>
您可以将这些函数存储为 data.table 或 tibble 的一部分,就像这个例子:
data.table(id=c(1,2,3), dist_funcs = list(pnorm, ppois, pbinom))
输出:
id dist_funcs
<num> <list>
1: 1 <function[1]>
2: 2 <function[1]>
3: 3 <function[1]>
与 tibbles 类似:
tibble(id=c(1,2,3), dist_funcs = list(pnorm, ppois,pbinom))
输出:
id dist_funcs
<dbl> <list>
1 1 <fn>
2 2 <fn>
3 3 <fn>