【发布时间】:2017-11-05 15:51:23
【问题描述】:
我有这些数据集:A <- 4, B <- 3, C <- 2。
所以我把它们放在一个列表中
D<-list(A,B,C) 并想应用此功能:
s<-function(x) {
t<-8
x<-as.data.frame(x*t)
}
lapply(D,s)
当我应用 lapply 函数时,它只会打印它们。
我怎样才能让它在全局环境中保存结果而不是打印它们?
所以结果应该是 A 的值为 32 B 的值为 24 C 的值为 16。
【问题讨论】:
-
听起来你想要
scoping assignment arrow -
我在这一点上尝试了
x<<-as.data.frame(x*t)的问题,它使用名称x而不是A, B , C写入值 -
您可以将
lapply的结果存储在现有变量D中(“覆盖它”)。单个变量 A、B 和 C 不会因此而改变,但是使用没有像列表这样的“容器”的单个变量使得应用灵活的算法变得非常困难......然后您可以通过D$A、@987654336 访问变量@ 和"D$C这只是一个命名空间(将其视为“完全限定的变量名”)。