重新定义后更新变量值

时间:2011-09-18 17:54:53

标签: r

你的新手问题R伙计:

案例场景:

  1. 我定义变量A:A =数字

  2. 我根据A定义其他变量:B =数字* A

  3. 我改变了A的定义:A =不同的数字

  4. [Q]。如何在不重新定义B的情况下让R自动更新B的值?

    例如为: 1. A = 1000; 2. B = A / 10; (B = 100) 3.改变主意:毕竟A = 1100;

    >A
    1100
    >B
    100
    

    B应为110(1100/10),但其值尚未更新 - 因此它显示为100.如果不重新定义B,我该如何更新其值?

    谢谢!

2 个答案:

答案 0 :(得分:6)

试试这个:

A <- 1000
makeActiveBinding("B", function() A/10, .GlobalEnv)
B
## [1] 100
A <- 1100
B
## [1] 110

答案 1 :(得分:2)

你提议将B作为A的函数(并且可能是第二个表达式中的“数字”)

A=10
B <- function(Number=3.5) { A*Number }
B()
# [1] 35
A <- 15
B()
# [1] 52.5