Tôi muốn viết một số mã sẽ lấy một khung dữ liệu nhất định, kiểm tra xem có cột nào bị thiếu hay không và nếu có, hãy thêm các cột bị thiếu 0 hoặc NA. Dưới đây là những gì tôi đã có:R: Tìm các cột bị thiếu, thêm vào khung dữ liệu nếu thiếu
> df
x1 x2 x4
1 0 1 3
2 3 1 3
3 1 2 1
> nameslist <- c("x1","x2","x3","x4")
> miss.names <- !nameslist %in% colnames(df)
> holder <- rbind(nameslist,miss.names)
> miss.cols <- subset(holder[1,], holder[2,] == "TRUE")
Ngoài điểm này, tôi không thể tìm ra cách thêm vào cột bị thiếu ("x3") mà không mã hóa nó. Lý tưởng nhất, tôi muốn khung dữ liệu hoàn chỉnh mới có các cột theo cùng thứ tự như danh sách tên.
Bất kỳ ý tưởng nào? Mã hiện tại của tôi có thể bị bỏ qua, không vấn đề gì.
Bạn cũng có thể sử dụng 'Thiếu <- setdiff (nms, tên (df))' trong suốt hơn một chút. –
@HongOoi - Đề xuất tốt. Đó là đẹp hơn nhiều, và tôi đã chỉnh sửa câu trả lời để bao gồm nó. Cảm ơn! –