Tôi đang cố gắng xóa một số dữ liệu đã nhập sai. Câu hỏi cho biến cho phép nhiều câu trả lời trong năm lựa chọn, đánh số từ 1 đến 5. Dữ liệu đã được nhập theo cách sau (đây chỉ là một ví dụ - có nhiều biến hơn và nhiều quan sát hơn trong dữ liệu thực tế khung hình):Tách một cột dữ liệu được phân cách bằng dấu phẩy được phân cách bằng dấu phẩy và nhập lại thành các yếu tố
data
V1
1 1, 2, 3
2 1, 2, 4
3 2, 3, 4, 5
4 1, 3, 4
5 1, 3, 5
6 2, 3, 4, 5
Dưới đây là một số mã để tái tạo rằng ví dụ dữ liệu:
data = data.frame(V1 = c("1, 2, 3", "1, 2, 4", "2, 3, 4, 5",
"1, 3, 4", "1, 3, 5", "2, 3, 4, 5"))
những gì tôi thực sự cần là dữ liệu được xử lý thêm ... nhị phân - như một bộ "có/không có "câu hỏi - được nhập trong khung dữ liệu trông giống như:
data
V1.1 V1.2 V1.3 V1.4 V1.5
1 1 1 1 NA NA
2 1 1 NA 1 NA
3 NA 1 1 1 1
4 1 NA 1 1 NA
5 1 NA 1 NA 1
6 NA 1 1 1 1
Tên biến thực sự không quan trọng tại thời điểm này - tôi có thể dễ dàng khắc phục điều đó. Ngoài ra, nó không quan trọng quá nhiều cho dù các yếu tố còn thiếu là "O", "NA", hoặc trống - một lần nữa, đó là một cái gì đó tôi có thể sửa chữa sau này.
Tôi đã thử sử dụng chức năng transform
từ gói reshape
cũng như nạp các thứ khác nhau với strsplit
, nhưng tôi không thể làm được những gì tôi đang tìm kiếm. Tôi cũng đã xem xét nhiều câu hỏi liên quan khác trên Stackoverflow, nhưng chúng dường như không phải là vấn đề tương tự.
Dưới đây là một lớp lót để tự động xác định giá trị hợp lý của 'ncol' cho biến 'V1':' max (as.numeric (không công khai (strsplit (dd $ V1, "")))) ' (giả sử rằng câu trả lời cuối cùng trong nhiều câu trả lời được đưa ra dưới dạng câu trả lời ít nhất một lần) – BenBarnes