Вы можете использовать регулярное выражение, например
sub(" .*", "", x)
См. Демо регулярное выражение .
Здесь sub
будет выполнять толькопри одиночной операции поиска и замены шаблон .*
найдет первый пробел (поскольку механизм регулярных выражений выполняет поиск строк слева направо), а .*
сопоставляет любые ноль или более символов (в варианте регулярного выражения TRE, даже включая символы разрыва строкиОстерегайтесь при использовании perl=TRUE
, тогда это не так) как можно больше, вплоть до конца строки.
Некоторые варианты:
sub("[[:space:]].*", "", x) # \s or [[:space:]] will match more whitespace chars
sub("(*UCP)(?s)\\s.*", "", x, perl=TRUE) # PCRE Unicode-aware regex
stringr::str_replace(x, "(?s) .*", "") # (?s) will force . to match any chars
См. онлайнR демо .