2015-08-10 21 views

Trả lời

13

Bạn có thể sử dụng một regex ("([A-Za-z]+)" hoặc "([[:alpha:]]+)" hay "(\\w+)") để lấy chữ đầu tiên

Dataframe1$COL2 <- gsub("([A-Za-z]+).*", "\\1", Dataframe1$COL1) 
+0

tại sao sử dụng 'gsub' khi bạn cần phải thay thế xảy ra chỉ đầu tiên. sử dụng 'sub' – Saksham

+0

@ Saksham bạn đúng' phụ' sẽ tốt hơn ở đây, nhờ – jenesaisquoi

+0

Điều gì xảy ra nếu từ đầu tiên là số: 495 hoặc Q1? Khi tôi thử công thức này, nó chỉ giữ "Q" chứ không phải Q1, và cho 495, phải mất tất cả các con số sau nó: "495 3Be" @nongkrong – Nick

5

Chức năng strsplit có thể hữu ích

Dataframe1$COL2 <- strsplit(Dataframe1$COL1, " ")[[1]][1] 

Sau đó, bạn có thể thay đổi số trong ngoặc vuông cuối cùng chọn các phần khác từ chuỗi quá.

+0

sẽ không hiệu quả nếu chỉ phần đầu tiên là bắt buộc – Saksham

7

Bạn có thể sử dụng chức năng từ() từ thư viện (stringr):

Dataframe1$COL2 <- word(Dataframe2$COL1,1) 
Các vấn đề liên quan