REGEX en R: extracción de palabras de una cadena

Supongo que este es un problema común, y encontré muchas páginas web, incluidas algunas de SO, pero no pude entender cómo implementarlo.

Soy nuevo en REGEX, y me gustaría usarlo en R para extraer las primeras palabras de una oración.

por ejemplo, si mi oración es

z = "I love stack overflow it is such a cool site"

me gustaría tener mi salida como (si necesito las primeras cuatro palabras)

[1] "I love stack overflow"

o (si necesito las últimas cuatro palabras)

[1] "such a cool site"

por supuesto, los siguientes trabajos

paste(strsplit(z," ")[[1]][1:4],collapse=" ")
paste(strsplit(z," ")[[1]][7:10],collapse=" ")

pero me gustaría probar una solución de expresiones regulares para problemas de rendimiento, ya que necesito lidiar con archivos muy grandes (y también por el bien de saberlo)

Miré varios enlaces, incluidosRegex para extraer las primeras 3 palabras de una cadena yhttp://osherove.com/blog/2005/1/7/using-regex-to-return-the-first-n-words-in-a-string.html

así que probé cosas como

gsub("^((?:\S+\s+){2}\S+).*",z,perl=TRUE)
Error: '\S' is an unrecognized escape in character string starting ""^((?:\S"

Intenté otras cosas, pero generalmente me devolvió la cadena completa o la cadena vacía.

Otro problema con substr es que devuelve una lista. tal vez parece que el[[]] El operador está ralentizando un poco las cosas (??) cuando se trata de archivos grandes y aplica cosas.

parece que la sintaxis utilizada en R es algo diferente? Gracias !

Respuestas a la pregunta(2)

Su respuesta a la pregunta