Tôi có data.frame chứa nhiều yếu tố và tôi muốn đổi tên các mức hệ số cho tất cả các yếu tố này. Ví dụ:Cách ấn định trong gia đình?
mydf <- data.frame(col1 = as.factor(c("A","A",NA,NA)),col2 = as.factor(c("A",NA,NA,"A")))
mydf <- as.data.frame(lapply(mydf,addNA))
Lưu ý rằng ví dụ thực tế đời sống không chỉ có hai cột. Do đó tôi muốn sử dụng áp dụng đối với chuyển nhượng tên mức khác cho tất cả các cột này, giống như trong:
levels(mydf$col1) <- c("1","0")
Tôi đã thử các sau đây nhưng nó đã không làm việc ...
apply(mydf,1,function(x) levels(x) <- c("1","0"))
Tôi không thực sự ngạc nhiên khi nó không hoạt động nhưng bây giờ tôi không có ý tưởng nào tốt hơn. Tôi có nên sử dụng with
không?
EDIT: Tôi nhận ra rằng tôi đã phạm sai lầm ở đây bằng cách đơn giản hóa mọi thứ. Tôi đã sử dụng addNA
để giải thích sự thật, rằng NA không nên xử lý như NA nữa. Vì vậy, tôi cũng muốn gắn nhãn lại chúng. Điều này không phù hợp với đề xuất của Andrie và trả về thông báo lỗi sau:
labels = c("1", : invalid labels; length 2 should be 1 or 1
Lưu ý rằng tôi đã cập nhật ví dụ df của mình.
Bạn không nói những gì bạn muốn làm với các cấp NA. Đổi tên chúng thành cái gì? – Andrie
sau khi sử dụng addNA Tôi có cấp 1 và. Và tôi muốn đổi tên NA thành 0 - giống như họ là các yếu tố thông thường và chưa bao giờ là NA. –
@Charles: có gì sai với thẻ phân loại? Đây là một câu hỏi nghiêm túc. Có phải vì nó quá bất khả tri về ngôn ngữ? Sử dụng thuật ngữ R cho danh mục ('factor') sẽ không tốt hơn. Tôi có nên để toàn bộ khía cạnh ra ngoài và tại sao? –