3 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以用一種方法ifelse和strsplit(除非我誤解,你不希望使用他們?)是這樣的....
cols <- 1:max( as.numeric( unlist(strsplit(DF$B,","))))
df <- t(apply(DF["B"] , 1 , function(x) ifelse( cols %in% as.numeric( unlist( strsplit(x , ",") ) ) , 1 , 0 ) ) )
colnames(df) <- cols
df
# 1 2 3 4 5 6 7 8 9 10
#1 1 1 1 0 0 0 0 0 0 0
#2 1 1 1 0 0 1 0 0 0 0
#3 1 1 1 0 1 0 1 0 0 0
#4 0 1 1 1 1 1 1 0 0 0
#5 0 0 1 1 1 1 1 0 0 1
我們的想法是,我們?cè)谒璧牧兄蝎@得唯一值的向量,找到該max值并創(chuàng)建一個(gè)向量,1:max(value)然后將其應(yīng)用于每一行,以找出該行的哪些值在所有值的向量中。ifelse如果有的話,我們通常會(huì)放一個(gè)1,如果沒有的話,我們會(huì)放0。將vector在我們的比賽是一個(gè)序列,因此其輸出為準(zhǔn)備進(jìn)行排序。
- 3 回答
- 0 關(guān)注
- 747 瀏覽
添加回答
舉報(bào)