Saya tidak mengerti mengapa saya mendapat pesan peringatan ini.
> fixed <- data.frame("Type" = character(3), "Amount" = numeric(3))
> fixed[1, ] <- c("lunch", 100)
Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = "lunch") :
invalid factor level, NA generated
> fixed
Type Amount
1 <NA> 100
2 0
3 0
data.frame()
fungsi (dan itu adalah default karena itulah yang paling diinginkan sebagian besar pengguna).Jika Anda membaca langsung dari file CSV maka lakukan seperti ini.
sumber
stringsAsFactors
-strings
Harus jamak (@Coliban)Berikut ini adalah pendekatan yang fleksibel , dapat digunakan dalam semua kasus, khususnya:
dataframe
telah diperoleh dari menerapkan operasi sebelumnya (misalnya tidak segera membuka file , atau membuat frame data baru).Pertama, un-faktorkan string menggunakan
as.character
fungsi, dan, kemudian, ulang faktor dengan fungsias.factor
(atau hanyafactor
):sumber
Cara termudah untuk memperbaikinya adalah menambahkan faktor baru ke kolom Anda. Gunakan fungsi level untuk menentukan berapa banyak faktor yang Anda miliki dan kemudian tambahkan faktor baru.
sumber
Saya punya masalah serupa yang data diambil dari file .xlsx. Sayangnya, saya tidak dapat menemukan jawaban yang tepat di sini. Saya menanganinya sendiri dengan dplyr seperti di bawah ini yang dapat membantu orang lain:
Namun, saya tidak bisa mengatasinya dengan
readxl
paket yang tidak memiliki parameter mirip denganstringsAsFactors
. Karena itu, saya telah pindah kexlsx
paket.sumber