从键值数据帧获取变量值



从以下数据帧开始

key = c("A", "B", "C") 
value = c(1, 2, 3) 
df = data.frame(key,value)

如何设计函数以应用基于键的公式

例如,A+B*C 应返回 1+2*3 = 7

我们可以将其转换为list,然后应用逻辑

lst <- split(df$value, df$key)
lst[['A']] + lst[['B']] * lst[['C']]
#[1] 7

或者将list转换为三列数据集并使用with,得到输出

with(as.data.frame(lst), A + B * C)
#[1] 7

或者这也可以工作,因为list元素是 length 1

with(lst, A + B * C)
#[1] 7

最新更新