| 
					
				 | 
			
			
				@@ -219,63 +219,76 @@ write.table(main(), file=\"%s\", sep=\"\\t\", na=\"nil\",row.names=%s, col.names 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-babel-R-evaluate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (session body result-type column-names-p row-names-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Pass BODY to the R process in SESSION. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-If RESULT-TYPE equals 'output then return a list of the outputs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-of the statements in BODY, if RESULT-TYPE equals 'value then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return the value of the last statement in BODY, as elisp." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (if (not session) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ;; external process evaluation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (case result-type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(output (org-babel-eval org-babel-R-command body)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (let ((tmp-file (make-temp-file "org-babel-R-results-"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (org-babel-eval org-babel-R-command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			   (format org-babel-R-wrapper-method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				   body tmp-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				   (if row-names-p "TRUE" "FALSE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				   (if column-names-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				       (if row-names-p "NA" "TRUE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				     "FALSE"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (org-babel-R-process-value-result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (org-babel-import-elisp-from-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     (org-babel-maybe-remote-file tmp-file) '(16)) column-names-p)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ;; comint session evaluation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (case result-type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (let ((tmp-file (make-temp-file "org-babel-R")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     broke) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-babel-comint-with-output (session org-babel-R-eoe-output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (insert (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    #'org-babel-chomp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     body 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     (format org-babel-R-wrapper-lastvar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     tmp-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     (if row-names-p "TRUE" "FALSE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     (if column-names-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 (if row-names-p "NA" "TRUE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       "FALSE")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     org-babel-R-eoe-indicator) "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (inferior-ess-send-input)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-babel-R-process-value-result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (org-babel-import-elisp-from-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (org-babel-maybe-remote-file tmp-file) '(16))  column-names-p))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	#'org-babel-chomp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(butlast 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (delq nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       (mapcar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(lambda (line) ;; cleanup extra prompts left in output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (if (string-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       "^\\([ ]*[>+][ ]?\\)+\\([[0-9]+\\|[ ]\\)" line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (substring line (match-end 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    line)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(org-babel-comint-with-output (session org-babel-R-eoe-output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (insert (mapconcat #'org-babel-chomp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				     (list body org-babel-R-eoe-indicator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				     "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (inferior-ess-send-input)))) 2) "\n"))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Evaluate R code in BODY." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (if session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (org-babel-R-evaluate-session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       session body result-type column-names-p row-names-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-babel-R-evaluate-external-process 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     body result-type column-names-p row-names-p))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-R-evaluate-external-process 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (body result-type column-names-p row-names-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Evaluate BODY in external R process. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+If RESULT-TYPE equals 'output then return standard output as a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+string. If RESULT-TYPE equals 'value then return the value of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+last statement in BODY, as elisp." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (case result-type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (let ((tmp-file (make-temp-file "org-babel-R-results-"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (org-babel-eval org-babel-R-command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (format org-babel-R-wrapper-method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       body tmp-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       (if row-names-p "TRUE" "FALSE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       (if column-names-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				   (if row-names-p "NA" "TRUE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 "FALSE"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (org-babel-R-process-value-result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(org-babel-import-elisp-from-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (org-babel-maybe-remote-file tmp-file) '(16)) column-names-p))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (output (org-babel-eval org-babel-R-command body)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-R-evaluate-session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (session body result-type column-names-p row-names-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Evaluate BODY in SESSION. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+If RESULT-TYPE equals 'output then return standard output as a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+string. If RESULT-TYPE equals 'value then return the value of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+last statement in BODY, as elisp." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (case result-type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (let ((tmp-file (make-temp-file "org-babel-R")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   broke) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (org-babel-comint-with-output (session org-babel-R-eoe-output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (insert (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  #'org-babel-chomp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   body 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (format org-babel-R-wrapper-lastvar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   tmp-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   (if row-names-p "TRUE" "FALSE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   (if column-names-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       (if row-names-p "NA" "TRUE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     "FALSE")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   org-babel-R-eoe-indicator) "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (inferior-ess-send-input)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (org-babel-R-process-value-result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(org-babel-import-elisp-from-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (org-babel-maybe-remote-file tmp-file) '(16))  column-names-p))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      #'org-babel-chomp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (butlast 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (delq nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (mapcar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (lambda (line) ;; cleanup extra prompts left in output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(if (string-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     "^\\([ ]*[>+][ ]?\\)+\\([[0-9]+\\|[ ]\\)" line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (substring line (match-end 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  line)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (org-babel-comint-with-output (session org-babel-R-eoe-output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(insert (mapconcat #'org-babel-chomp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				   (list body org-babel-R-eoe-indicator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				   "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(inferior-ess-send-input)))) 2) "\n")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-babel-R-process-value-result (result column-names-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "R-specific processing of return value. 
			 |