Tôi quan tâm đến việc lấy cột của một data.frame nơi các giá trị trong cột được phân cách bằng đường ống và tạo biến giả từ các giá trị được phân tách bằng đường ống.Chuyển đổi cột với dữ liệu phân cách đường ống thành các biến giả
Ví dụ:
Hãy nói rằng chúng ta bắt đầu với
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
Tôi quan tâm đến kết thúc với:
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
Tôi không biết trước có bao nhiêu tiềm năng giá trị có trong lĩnh vực này. Trong ví dụ trên, biến "a" có thể bao gồm 1 giá trị hoặc 10 giá trị. Giả sử đây là một số hợp lý (tức là, < 100 giá trị có thể).
Bất kỳ cách nào tốt để thực hiện việc này?
điều tuyệt vời nhất. –
Rất nhiều câu trả lời tuyệt vời - cảm ơn tất cả mọi người. Tôi thích cái này nhất vì nó đơn giản nhất. Cảm ơn! – dreww2