簡體   English   中英

具有指定值的model.matrix

[英]model.matrix with assigned values

假設我有以下data.frame:

df=data.frame(cat=c("a","b","c"),y=c(1,2,3))

采用類別(cat)的model.matrix將它們轉換為虛擬變量,如下所示:

model.matrix(~0+cat,df)


 cata catb catc
1    1    0    0
2    0    1    0
3    0    0    1
attr(,"assign")
[1] 1 1 1
attr(,"contrasts")
attr(,"contrasts")$cat
[1] "contr.treatment"

但是,我希望將這些虛擬變量分配給df $ y中的值。 我能想到的一個可能的解決方案是乘以y乘以。

但是,我猜這里有更好的專用功能?

基本上,將虛擬變量轉換為給定向量的最有效方法是什么?

可能是我們可以試試

library(reshape2)
acast(df, cat~y, value.var="y", fill=0)
#  1 2 3
#a 1 0 0
#b 0 2 0
#c 0 0 3

或者使用model.matrix

model.matrix(~0 + cat, df) *df$y

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM