Это должно сработать:
plot(c(1,100), c(1,100), type="n", axes=FALSE, xlab="", ylab="")
text(50, 50,
expression(paste("Reginald is ", phantom() %~~% phantom(), "14 years old")))
Причина, по которой ваша версия не сработала, заключается в том, что оператор %~~%
ожидает быть частью выражения с чем-то слева и справа от него. phantom()
предоставляет вам что-то, что (а) невидимо и (б) не занимает ширину - именно то, что вам нужно.
Редактировать
Я чему-то учусь каждый день. Брайан Диггс указывает в комментариях, что вы можете создать тот же эффект, проще просто пропустив запятые в выражении (в этом случае вам даже не нужен вложенный вызов paste()
). Это лучшее решение:
text(50, 50, expression("Reginald is " %~~% "14 years old"))