R 在数据表中循环变量

R 在数据表中循环变量,r,data.table,R,Data.table,我有下面的代码,我希望能够更改'x'和'stat'并运行整个代码。目前,我必须手动更改rollapply功能第5行中的“pts”。如果我将“pts”更改为“stat”,则会出现错误。谢谢你的帮助 x = 5 stat = 'pts' game_stats[,paste0('l',x,'g_', stat):=0] game_stats[,paste0('l',x,'g_', stat):=NA] game_stats[,paste0('l',x,'g_', stat):=rollapply(pt

我有下面的代码,我希望能够更改'x'和'stat'并运行整个代码。目前,我必须手动更改rollapply功能第5行中的“pts”。如果我将“pts”更改为“stat”,则会出现错误。谢谢你的帮助

x = 5
stat = 'pts'
game_stats[,paste0('l',x,'g_', stat):=0]
game_stats[,paste0('l',x,'g_', stat):=NA]
game_stats[,paste0('l',x,'g_', stat):=rollapply(pts, list(-(1:x)), mean, fill=NA, align='right'),
           by=team]

在没有示例的情况下,这仍然未经测试,但使用
get
似乎很简单,这是交付对象的标准方法,当您只有其名称的字符表示时:

game_stats[,paste0('l',x,'g_', stat):=
             rollapply( get(pts), list(-(1:x)), mean, fill=NA, align='right'), by=team]

这假设您知道,
paste0
表达式在
:=.data.table
中被测试为有效地构造赋值名称。。。。这让我读起来有点惊讶,但这正是前面两行所暗示的。(是的,它也适用于我。)

您能提供一个最小的可复制示例吗?您的代码不可复制。您没有添加值得添加的
数据.table
标记。阅读不要期望得到高质量的答案,如果有的话。问题不清楚。你能详细说明一下你想要达到的目标吗?完美,绝对是一种享受!非常感谢你花时间思考这个问题,即使没有数据,希望其他人也能在这方面向你学习。非常感谢