Chcę wyodrębnić ramkę danych za pomocą formuły, która określa, które kolumny wybrać i niektóre przejścia między kolumnami.Wyodrębnij ramkę danych za pomocą modelu.frame i formuły
Znam funkcję model.frame
. Jednak to nie daje mi to przeniesień skrzyżowań:
Na przykład:
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)
wyjściowa:
> 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
mam nadzieję dostać:
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
Czy istnieje pakiet, który może osiągnąć tę funkcjonalność? (Byłoby idealne, jeśli mogę dostać macierzy wynikowej jako rozrzedzony matrycy ponieważ skrzyżowane kolumny będzie bardzo rzadki)
Można użyć sparse.model.matrix() z pakietu Matrix. Coś jak: 'sparse.model.matrix (f, df)' –
@FlavioBarros Dobry pomysł, nie wiedziałem o tej funkcji. –