自動(dòng)將R因子擴(kuò)展為每個(gè)因子級(jí)別的1/0指標(biāo)變量的集合我有一個(gè)R數(shù)據(jù)幀,其中包含我想要“擴(kuò)展”的因子,因此對(duì)于每個(gè)因子級(jí)別,新數(shù)據(jù)幀中都有一個(gè)關(guān)聯(lián)列,其中包含1/0指示符。例如,假設(shè)我有:df.original <-data.frame(eggs = c("foo", "foo", "bar", "bar"), ham = c(1,2,3,4))我想要:df.desired <- data.frame(foo = c(1,1,0,0), bar=c(0,0,1,1), ham=c(1,2,3,4))因?yàn)閷?duì)于某些需要完全數(shù)字?jǐn)?shù)據(jù)框的分析(例如,主成分分析),我認(rèn)為這個(gè)特性可能是內(nèi)置的。寫一個(gè)函數(shù)來做這個(gè)不應(yīng)該太難,但我可以預(yù)見一些與列名相關(guān)的挑戰(zhàn),如果已存在某些內(nèi)容,我寧愿使用它。
3 回答

富國(guó)滬深
TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用model.matrix
功能:
model.matrix( ~ Species - 1, data=iris )

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用reshape2包的快速方法:
require(reshape2)
> dcast(df.original, ham ~ eggs, length)
Using ham as value column: use value_var to override.
ham bar foo
1 1 0 1
2 2 0 1
3 3 1 0
4 4 1 0
請(qǐng)注意,這會(huì)精確生成所需的列名稱。
- 3 回答
- 0 關(guān)注
- 484 瀏覽
添加回答
舉報(bào)
0/150
提交
取消