5
我想使用公式提取數據幀,該公式指定要選擇哪些列,並且列中的某些跨越。使用model.frame和公式提取數據幀
我知道model.frame
函數。然而,它並沒有給我的交叉旁白:
例如:
df <- data.frame(x = c(1,2,3,4), y = c(2,3,4,7), z = c(5,6, 9, 1))
f <- formula('z~x*y')
model.frame(f, df)
輸出:
> df
x y z
1 1 2 5
2 2 3 6
3 3 4 9
4 4 7 1
> f <- formula('z~x*y')
> model.frame(f, df)
z x y
1 5 1 2
2 6 2 3
3 9 3 4
4 1 4 7
我希望得到:
z x y x*y
1 5 1 2 2
2 6 2 3 6
3 9 3 4 12
4 1 4 7 28
有一個包,可以實現這個功能? (這將是完美的,如果我能得到的矩陣來作爲稀疏矩陣因爲交叉列將是非常稀少)
您可以使用Matrix包中的sparse.model.matrix()。像這樣:'sparse.model.matrix(f,df)' – 2014-10-06 17:58:00
@FlavioBarros好主意,我不知道這個功能。 – 2014-10-06 18:03:20