As mentioned in my comment, you need to pass the variable as a :var header on the #+begin_src line, not on the #+name: line. But you also need to specify that the results be output to a graphics file. The following worked for me:
| 100 | ABC |
| 3 | DEF |
| 123 | XYZ |
#+begin_src R :results file graphics :file pie.png :...
The command M-x R is provided by the package ESS, which is available via the Melpa repository. You need to install this package before you can start the R process this way.
There was a period in early 2019 when the R command was broken in ESS, but it has since been fixed, so installing the current release of ESS should restore the R command.
While doing due research on this, I stumbled upon a small section in the ESS manual:
The default value of ess-eval-visibly (t) means that ESS calls block Emacs until they finish. This may be undesirable, especially if commands take long to finish. Users who want input to be displayed and Emacs not to be blocked can set ess-eval-visibly to 'nowait. This ...
Here's a quick and dirty approach. Depending on what you want there's lots of room for improvement.
(defun head-at-point ()
(let ((target (thing-at-point 'symbol)))
(ess-send-string (ess-get-process ess-local-process-name)
(concat "head(" target ")\n"))))