Bagaimana cara menghapus semua karakter khusus dari string di R dan menggantinya dengan spasi?
Beberapa karakter khusus untuk dihapus adalah: ~!@#$%^&*(){}_+:"<>?,./;'[]-=
Saya sudah mencoba regex
dengan [:punct:]
pola tetapi hanya menghapus tanda baca.
Pertanyaan 2: Dan bagaimana cara menghapus karakter dari bahasa asing seperti â í ü Â á ą ę ś ć
:?
Jawaban: Gunakan [^[:alnum:]]
untuk menghapus ~!@#$%^&*(){}_+:"<>?,./;'[]-=
dan menggunakan [^a-zA-Z0-9]
untuk menghapus juga â í ü Â á ą ę ś ć
di regex
atau regexpr
fungsi.
sub
ataugsub
fungsinya.Jawaban:
Anda perlu menggunakan ekspresi reguler untuk mengidentifikasi karakter yang tidak diinginkan. Untuk kode yang paling mudah dibaca, Anda menginginkan
str_replace_all
daristringr
paket, meskipungsub
dari basis R juga berfungsi dengan baik.Persamaan reguler yang tepat bergantung pada apa yang Anda coba lakukan. Anda bisa saja menghapus karakter spesifik yang Anda berikan dalam pertanyaan, tetapi jauh lebih mudah untuk menghapus semua karakter tanda baca.
(Setara basis R adalah
gsub("[[:punct:]]", " ", x)
.)Alternatifnya adalah menukar semua karakter non-alfanumerik.
Perhatikan bahwa definisi tentang huruf atau angka atau tanda baca sedikit berbeda-beda tergantung pada tempat Anda, jadi Anda mungkin perlu sedikit bereksperimen untuk mendapatkan apa yang Anda inginkan.
sumber
" "
dengan""
jika tidak, Anda memiliki ruang kosong kosong di string.â í ü Â á
??regex
dan?regexpr
.[^[:alnum:]]
dengan[^a-zA-Z0-9]
atau mungkin\\W
.Alih-alih menggunakan regex untuk menghapus karakter "gila" tersebut, cukup ubah menjadi ASCII, yang akan menghapus aksen, tetapi akan mempertahankan hurufnya.
yang mengakibatkan
sumber
iconv(astr, from="UFT-8", to="ASCII//TRANSLIT")
, jika tidak dengan karakter Prancis sepertinyaç
akan sedikit lucu.Ubah karakter Khusus menjadi apostrof,
Di bawah kode itu untuk menghapus tanda kutip ekstra '' '
Gunakan
gsub(..)
fungsi untuk mengganti karakter khusus dengan apostrofsumber