You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在作为参数传入的列表内计算表达式并基于数据表列生成新表?

基于数据表列表达式创建新表的R实现方法

如果你需要基于已有数据表的列编写表达式,进而生成一个全新的表,我整理了一个实用的自定义函数方案,一起来看看:

首先得加载两个必要的R包:

library(rlang)
library(purrr)

接下来是核心的自定义函数from_exprs:

from_exprs = function(tb, ...) {
  quos(...) %>% map_dfc(~ eval_tidy(., tb))
}

简单解释下这个函数的工作逻辑:

  • 用quos(...)捕获你传入的所有表达式参数
  • 通过map_dfc()遍历每个捕获到的表达式,用eval_tidy()在原数据表tb的环境中计算表达式结果
  • 最后把所有计算结果按列组合成一个新的tibble

实际示例

我们用一个简单的数据表测试一下这个函数:

首先创建原数据表:

tb = data.frame(year = 2001:2005, month = 1, names = letters[1:5])

查看原数据表内容:

> tb
  year month names
1 2001     1     a
2 2002     1     b
3 2003     1     c
4 2004     1     d
5 2005     1     e

然后调用from_exprs,传入两个表达式:year + month和toupper(names):

> from_exprs(tb, year + month, toupper(names))
# A tibble: 5 x 2
     V1 V2  
  <dbl> <chr>
1  2002 A    
2  2003 B    
3  2004 C    
4  2005 D    
5  2006 E

这样就轻松得到了基于原数据表列表达式生成的新表啦!

内容的提问来源于stack exchange,提问作者Luiz Rodrigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:22:17