Вывести вектор в R в том же формате, в котором он был введен в R

Может быть, я представляю это, но я думаю, что есть встроенная функция R, которая позволяет вам печатать вектор R (и, возможно, другие объекты, такие как матрицы и фреймы данных) в формате, который вы использовали бы для ввода этого объекта (возвращается как строка). Например.,

> x <- c(1,2,3)
> x
[1] 1 2 3
> magical.function(x)
"c(1,2,3)" 

Эта функция существует?

 Rich Scriven03 янв. 2016 г., 06:18
Посмотри наdeparse(x).

Ответы на вопрос(2)

dput() не работал для того, что я пытался сделать. у меня естьshiny приложение, которое используетknitr делать отчеты на основе пользовательского сеанса, и я используюknit_expand() перед рендерингом моего .Rmd для переноса пользовательских параметров из блестящего сеанса в .Rmd.

Не вдаваясь в подробности, мне нужно портировать векторы «как есть», потому что они будут записаны в строки кода в .Rmd, которые кто-то запустит. Для этого случаяdput() не работает, потому что вывод только плевать на консоль, аdump() метод работает, но я не хотел каждый раз писать новые файлы и удалять их.

Возможно, есть лучший способ, но я написал функцию, которая возвращает символьный объект вектора «как есть». Он обрабатывает как числовые, так и символьные векторы (он бросает кавычки вокруг каждого члена символьного вектора). Он также обрабатывает отдельные входы и просто возвращает их как есть. Это не красиво, и я уверен, что есть более эффективные способы, чтобы написать это, но он отлично работает для моих нужд. Думал, что добавлю это решение в драку.

printVecAsis <- function(x) {
  ifelse(length(x) == 1, x, 
       ifelse(is.character(x), paste0("c(", paste(sapply(x, function(a) paste0("\'",a,"\'")), collapse=", "), ")"),
              paste0("c(", paste(x, collapse=", "), ")")))}
 Holger Brandl05 апр. 2018 г., 16:19
Есть ли аналогичный помощник для именованных списков?
Решение Вопроса

dput может быть?

Вы также можетеdump из нескольких объектов за один раз перейти к файлу, который записан в вашем рабочем каталоге:

> test2 <- matrix(1:10,nrow=2)
> test2
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> dump(c("test","test2"))

dumpdata.r будет содержать:

test <-
c(1, 2, 3)
test2 <-
structure(1:10, .Dim = c(2L, 5L))

Ваш ответ на вопрос