我有興趣獲取data.frame的列,其中列中的值是管道分隔的,並從管道分隔的值中創建虛擬變量。將具有管道分隔數據的列轉換爲虛擬變量
例如:
比方說,我們開始與
df = data.frame(a = c("Ben|Chris|Jim", "Ben|Greg|Jim|", "Jim|Steve|Ben"))
> df
a
1 Ben|Chris|Jim
2 Ben|Greg|Jim
3 Jim|Steve|Ben
我感興趣的結尾了:
df2 = data.frame(Ben = c(1, 1, 1), Chris = c(1, 0, 0), Jim = c(1, 1, 1), Greg = c(0, 1, 0),
Steve = c(0, 0, 1))
> df2
Ben Chris Jim Greg Steve
1 1 1 1 0 0
2 1 0 1 1 0
3 1 0 1 0 1
我不知道提前多少潛在價值有在領域內。在上面的例子中,變量「a」可以包含1個值或10個值。假定它是一個合理的數字(即,可能的值爲<)。
任何好的方法來做到這一點?
什麼是一個偉大的發現。 –
許多偉大的答案 - 謝謝大家。我喜歡這個最好的,因爲它感覺最簡單。謝謝! – dreww2