S言語において、以下の語は予約語である。 付値の左辺でオブジェクト名として用いることは出来ない。
if else for in while repeat next break function return TRUE FALSE T F NA NULL
上の予約語以外に、S言語に重要なオブジェクト(特に関数)と同じオブジェクト名は 用いない方が良い。同名のオブジェクトを自分で定義して用いることは 可能ではあるが、いろいろ問題が起きることがあるので、 避けるよう努力した方が良い。 ( オブジェクトのmode ( 関数かそれとも数値かなど ) から、 どちらを参照したいのかが判断できる場合には warning を出しながらも、適当に処理してくれることはある。)
たとえば、"c"とか"t"という、関数オブジェクトが最初から存在する。 自分で新たに"c"とか"t"というオブジェクトを作ると、これらの関数は 参照できなくなることがある。