Saya sangat baru mengenal R, dan saya tidak dapat menemukan contoh sederhana secara online tentang cara menghapus karakter n terakhir dari setiap elemen vektor (array?)
Saya berasal dari latar belakang Java, jadi yang ingin saya lakukan adalah mengulang setiap elemen a$data
dan menghapus 3 karakter terakhir dari setiap elemen.
Bagaimana Anda melakukannya?
-3
untuk-0
mendapatkan efek yang diinginkan! Saya punya banyak data dengan tanggal, seperti:"2014-03-27 23:00:00 GMT" "2014-03-31 00:00:00 BST"
- ya, dua zona waktu bersama-sama, dan fungsi as.Date mengembalikan hasil yang tidak terduga (hari sebelumnya untuk tanggal BST) - oleh karena itu saya ingin menghapus cap zona waktu, ternyata saya harus lakukan-0
dan menghilang, bersama dengan jamstrptime
).Berikut caranya dengan
gsub
:sumber
gsub('.{5}$', '', 'abcd')
.Meskipun ini sebagian besar sama dengan jawaban oleh @nfmcclure, saya lebih suka menggunakan
stringr
paket karena ini menyediakan serangkaian fungsi yang namanya paling konsisten dan deskriptif daripada yang ada di basis R (sebenarnya saya selalu mencari di Google untuk "cara mendapatkan jumlah karakter dalam R " karena saya tidak dapat mengingat namanyanchar()
).Ini menghapus 3 karakter terakhir dari setiap nilai di
Species
kolom.sumber
stringr
paket ada solusi yang lebih sederhana:str_sub(iris$Species, end=-4)
Hal yang sama dapat dicapai dengan paket stringi :
sumber
Mirip dengan @Matthew_Plourde menggunakan
gsub
Namun, menggunakan pola yang akan memotong ke karakter nol yaitu mengembalikan "" jika string asli lebih pendek dari jumlah karakter yang akan dipotong:
Perbedaannya adalah,
{0,3}
pembilang menunjukkan 0 hingga 3 kecocokan, sedangkan{3}
membutuhkan tepat 3 kecocokan, jika tidak, tidak ada kecocokan yang ditemukan dalam hal inigsub
mengembalikan string asli yang tidak dimodifikasi.Penggunaan NB
{,3}
akan sama dengan{0,3}
, saya lebih suka notasi yang terakhir.Lihat di sini untuk informasi lebih lanjut tentang bilangan regex: https://www.regular-expressions.info/refrepeat.html
sumber
sub()
sebagai penggantigsub()
.