我有data.table
个功能,例如:
library(data.table)
m = data.table(x1=rnorm(10),x2=rnorm(10))
通常情况下,如果我想要lm
中某个功能的自然样条基础扩展,我可以执行以下操作:
library(splines)
m[,lm(x2 ~ ns(x1,df=4))]
但是如果我想要的是将样条基础列添加到我的data.frame中以便以后不起作用:
m[,c('a','b','c','d') := ns(x1,df=4)]
有优雅的方式来分配它们吗?无需手动提取这样的列:
foo = ns(m$x1,df=4)
m[,a:=foo[1,]] #etc