|
|
@@ -57,16 +57,14 @@ R process in `org-babel-R-buffer'."
|
|
|
(unless org-babel-R-buffer (error "No active R buffer"))
|
|
|
(org-babel-R-input-command
|
|
|
(if (listp value)
|
|
|
- (let ((transition-file (make-temp-file "org-babel-R-import"))
|
|
|
- has-header)
|
|
|
+ (let ((transition-file (make-temp-file "org-babel-R-import")))
|
|
|
;; ensure VALUE has an orgtbl structure (depth of at least 2)
|
|
|
(unless (listp (car value)) (setq value (list value)))
|
|
|
- (setq has-header (and (symbolp (cadr value)) (equal (cadr value) 'hline)))
|
|
|
(with-temp-file transition-file
|
|
|
(insert (orgtbl-to-tsv value '(:fmt org-babel-R-quote-tsv-field)))
|
|
|
(insert "\n"))
|
|
|
- (format "%s <- read.table(\"%s\", header=%s, sep=\"\\t\", as.is=TRUE)"
|
|
|
- name transition-file (if has-header "TRUE" "FALSE")))
|
|
|
+ (format "%s <- read.table(\"%s\", header=FALSE, sep=\"\\t\", as.is=TRUE)"
|
|
|
+ name transition-file))
|
|
|
(format "%s <- %s" name (org-babel-R-quote-tsv-field value)))))
|
|
|
|
|
|
(defun org-babel-R-last-value-as-elisp ()
|
|
|
@@ -93,27 +91,6 @@ R process in `org-babel-R-buffer'."
|
|
|
(car result))
|
|
|
result))))
|
|
|
|
|
|
-(defun org-babel-R-set-header-row (table)
|
|
|
- "Check whether the table appears to have (a) genuine
|
|
|
-user-supplied column names, or (b) default column names added
|
|
|
-automatically by R. In case (a), maintain the first row of the
|
|
|
-table as a header row and insert an hline. In case (b), remove
|
|
|
-the first row and return the org table without an hline."
|
|
|
- (if (or (string-equal (caar table) "V1")
|
|
|
- (string-equal (caar table) "x"))
|
|
|
-
|
|
|
- ;; write.table(1, col.names=TRUE) makes a colname called "x". I
|
|
|
- ;; think shows that this approach is too much of a hack: we
|
|
|
- ;; can't take some totally different action just because we see
|
|
|
- ;; an "x" there that might or might not be a automatic name.
|
|
|
-
|
|
|
- ;; The first row looks like it contains default column names
|
|
|
- ;; added by R. This condition could be improved so that it
|
|
|
- ;; checks whether the first row is ("V1" "V2" ... "V$n") where
|
|
|
- ;; $n is the number of columns.
|
|
|
- (cdr table)
|
|
|
- (cons (car table) (cons 'hline (cdr table)))))
|
|
|
-
|
|
|
(defun org-babel-R-read (cell)
|
|
|
"Strip nested \"s from around strings in exported R values."
|
|
|
(org-babel-read (or (and (stringp cell)
|
|
|
@@ -127,8 +104,6 @@ the first row and return the org table without an hline."
|
|
|
|
|
|
(defun org-babel-R-initiate-R-buffer ()
|
|
|
"If there is not a current R process then create one."
|
|
|
- ;; DED: Ideally I think we should use ESS mechanisms for this sort
|
|
|
- ;; of thing. See ess-force-buffer-current.
|
|
|
(unless (and (buffer-live-p org-babel-R-buffer) (get-buffer org-babel-R-buffer))
|
|
|
(save-excursion
|
|
|
(R)
|