Kami memiliki bingkai data dari file CSV. Bingkai data DF
memiliki kolom yang berisi nilai yang diamati dan kolom ( VaR2
) yang berisi tanggal di mana pengukuran telah dilakukan. Jika tanggal tidak direkam, file CSV berisi nilai NA
untuk data yang hilang.
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
Kami ingin menggunakan perintah subset untuk mendefinisikan bingkai data baru new_DF
sehingga hanya berisi baris yang memiliki NA'
nilai dari kolom ( VaR2
). Dalam contoh yang diberikan, hanya Baris 2 yang akan dimuat di yang baru DF
.
Perintah
new_DF<-subset(DF,DF$Var2=="NA")
tidak berfungsi, bingkai data yang dihasilkan tidak memiliki entri baris.
Jika dalam file CSV aslinya Nilai NA
dipertukarkan dengan NULL
, perintah yang sama menghasilkan hasil yang diinginkan: new_DF<-subset(DF,DF$Var2=="NULL")
.
Bagaimana saya bisa mendapatkan metode ini bekerja, jika untuk string karakter nilainya NA
diberikan dalam file CSV asli?
new_DF <- DF[is.na(DF$Var),]
, yaitu tampaknya ada tanda(
kurung tambahan setelahnyaDF[
?NA adalah nilai khusus di R, jangan mencampur nilai NA dengan string "NA". Bergantung pada cara data diimpor, sel "NA" dan "NULL" Anda mungkin memiliki berbagai jenis (perilaku defaultnya adalah mengubah string "NA" menjadi nilai NA, dan membiarkan string "NULL" sebagaimana adanya).
Jika menggunakan read.table () atau read.csv (), Anda harus mempertimbangkan argumen "na.strings" untuk melakukan impor data bersih, dan selalu bekerja dengan nilai R NA nyata.
Contoh, bekerja di kedua kasus sel "NULL" dan "NA":
sumber
complete.cases
memberikanTRUE
ketika semua nilai dalam satu baris tidakNA
sumber
Ini harus membuat bingkai data baru (
new_data
) dengan hanya nilai yang hilang di dalamnya.Berfungsi paling baik untuk melacak nilai yang mungkin Anda keluarkan nanti karena memiliki beberapa kolom dengan observasi yang hilang (NA).
sumber
Coba ubah ini:
sumber
DF %>% filter(is.na(Var2))
setelahnyalibrary(dplyr)
.Mencetak semua baris dengan data NA:
sumber