2015-08-10 30 views

Odpowiedz

13

Można użyć wyrażenia regularnego ("([A-Za-z]+)" lub "([[:alpha:]]+)" lub "(\\w+)"), aby pobrać pierwsze słowo

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

dlaczego użyć 'gsub' kiedy trzeba wymienić tylko pierwsze wystąpienie. użyj 'sub' – Saksham

+0

@Sshsham masz rację" sub "byłoby lepiej tutaj, dzięki – jenesaisquoi

+0

Co zrobić, jeśli pierwsze słowo jest liczbą: 495 lub Q1? Kiedy wypróbowuję tę formułę, to po prostu zachowuje "Q", a nie Q1, a dla 495 przyjmuje wszystkie liczby następujące po nim: "495 3Be" @nongkrong – Nick

5

Funkcja strsplit może być przydatna

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

Następnie można zmienić ostatni ujęty numer do wybierz też inne części z ciągu.

+0

byłoby nieefektywne, jeśli wymagana jest tylko pierwsza część – Saksham

7

można użyć funkcji słowa() z biblioteki (stringr):

Dataframe1$COL2 <- word(Dataframe2$COL1,1)