1) sqldf / RSQLite Если вы используете бэкэнд SQLite, вы можете использовать только функции, поддерживаемые RSQLite.Попробуйте это, если df
определено воспроизводимо в конце заметки.
library(sqldf)
sqldf("select
*,
substr([Col_A], 1, instr([Col_A], ' ') - 1) FirstWord
from df")
, что дает:
Col_A ColB FirstWord
1 ABC JEn JDn 9 ABC
2 nemmdn mend 10 nemmdn
3 pwek ne me ne 12 pwek
1a) Если могут быть записи столько одно слово затем добавляет пробел в конец, чтобы всегда был хотя бы один пробел для сопоставления.
sqldf("select
*,
substr([Col_A], 1, instr([Col_A] || ' ', ' ')-1) FirstWord
from df")
2) База R
В базеR убрать первый пробел и все после него:
transform(df, FirstWord = sub(" .*", "", Col_A))
Примечание
df <-
structure(list(`Col_A` = c("ABC JEn JDn", "nemmdn mend", "pwek ne me ne"
), `ColB` = c(9L, 10L, 12L)), class = "data.frame", row.names = c(NA,
-3L))