Vì vậy, tôi có tập dữ liệu với các địa chỉ đường phố, chúng được định dạng rất khác nhau. Ví dụ:Cách chia chuỗi trên số đầu tiên chỉ
d <- c("street1234", "Street 423", "Long Street 12-14", "Road 18A", "Road 12 - 15", "Road 1/2")
Từ đây tôi muốn tạo hai cột. 1. X: với địa chỉ đường phố và 2. Y: với số + mọi thứ tiếp theo. Như thế này:
X Y
Street 1234
Street 423
Long Street 12-14
Road 18A
Road 12 - 15
Road 1/2
Cho đến nay tôi đã cố gắng strsplit và sau đó một số câu hỏi tương tự ở đây, ví dụ: strsplit(d, split = "(?<=[a-zA-Z])(?=[0-9])", perl = T))
. Tôi dường như không thể tìm thấy cụm từ thông dụng chính xác.
Mọi trợ giúp đều được đánh giá cao. Cảm ơn bạn trước!
'do.call ('rbind', strsplit (d, split =" (? <= [A-zA-Z]) \\ s * (? = [0-9]) ", perl = TRUE)) ' – Sathish
@ Xích đạo: Có, nhưng hãy để lại cái gì đó cho OP để làm. Không có bất kỳ mã liên quan đến việc tạo khung dữ liệu nào trong câu hỏi, đó là tất cả về regex. –
Cảm ơn tất cả sự giúp đỡ. Cuối cùng, tôi đã sử dụng colsplit, với regex được cung cấp và sau đó liên kết chúng với tập dữ liệu hiện có. Các hình thức giải pháp Sathish là nhiều hơn nữa thanh lịch, cảm ơn. – Jesse