根据公式(R)转换数据帧
我有一个数据帧DF1,例如:根据公式(R)转换数据帧,r,dataframe,data.table,formula,R,Dataframe,Data.table,Formula,我有一个数据帧DF1,例如: DF1=data.frame(LA=1:5,VA=2:6) magicFunction(DF1,"LA + VA + I(LA*VA)") 我想估算一个模型(不使用标准函数),我的公式是(例如)~LA+VA+I(LA*VA)。R中是否有这样一个函数可以根据我的公式将我的原始数据帧转换为现成的数据帧?例如: DF1=data.frame(LA=1:5,VA=2:6) magicFunction(DF1,"LA + VA + I(LA*VA)") 或 这将返回:
DF1=data.frame(LA=1:5,VA=2:6)
magicFunction(DF1,"LA + VA + I(LA*VA)")
我想估算一个模型(不使用标准函数),我的公式是(例如)~LA+VA+I(LA*VA)
。R中是否有这样一个函数可以根据我的公式将我的原始数据帧转换为现成的数据帧?例如:
DF1=data.frame(LA=1:5,VA=2:6)
magicFunction(DF1,"LA + VA + I(LA*VA)")
或
这将返回:
LA VA V3
1: 1 2 2
2: 2 3 6
3: 3 4 12
4: 4 5 20
5: 5 6 30
我的实际问题是,我的公式比~LA+VA+I(LA*VA)
复杂得多(在这个阶段没有得到确认),所以我正在寻找一个可以处理这个问题的函数
(带有data.table的解决方案也适用于我)
正如@alistaire所指出的:
> model.frame(~LA+VA+cbind(V3 = I(LA*VA)), data = df)
# LA VA V3
#1 1 2 2
#2 2 3 6
#3 3 4 12
#4 4 5 20
#5 5 6 30
正如@alistaire所指出的:
> model.frame(~LA+VA+cbind(V3 = I(LA*VA)), data = df)
# LA VA V3
#1 1 2 2
#2 2 3 6
#3 3 4 12
#4 4 5 20
#5 5 6 30
尝试
transform(DF1,V3=LA+LA+LA*VA)
model.frame()工作尝试transform(DF1,V3=LA+LA+LA*VA)
model.frame()工作这很好。非常感谢。在本例中,model.frame(~LA+VA+cbind(V3=LA*VA),DF1)
。非常感谢。在这种情况下,model.frame(~LA+VA+cbind(V3=LA*VA),DF1)