2012-04-12 14 views
22

Nuovo per R, Rstudio e SO - mi scuso in anticipo per qualsiasi passo falso.Come mantenere la formattazione da rstudio quando si copia/incolla su Word?

Voglio riprodurre il mio codice in Word 2010 per un compito a casa. Gli script sono stati scritti in rstudio e mi piacerebbe conservare la formattazione di rstudio quando si incolla in Word. Principalmente, mi piacciono i colori e la spaziatura del font utilizzati da rstudio. Trovo che quando si incolla da SAS a Word, la formattazione viene mantenuta, ma qui non ci sono dadi.

Di solito cerco copia speciale/incolla opzioni speciali per farlo, ma non riesco a trovarne. Quando provo a incollare uno speciale in una parola, vengono visualizzate solo le opzioni di testo non formattate. Preferirei non riformattare il testo riga per riga, perché penso che sia molto carino in rstudio.

Ho pensato di provare a salvare lo script in rstudio in un formato che ne preservasse la formattazione, ma non ho trovato alcun modo per farlo. Qualcuno ha un'idea di come potrei tirarlo fuori?

Grazie in anticipo

+0

StackOverflow è per domande di programmazione. Copiare e incollare non è una programmazione, quindi la tua domanda è piuttosto fuori tema. –

+0

Joran, Josh, scusa se sono uscito dall'argomento qui ... mi sto ancora abituando a ciò che mi sta intorno. E sì, mi rendo conto che si presenta come inane, ma è quello che vuole. Se il consenso generale è che è OT, eliminerò il post-dispendio. – dubhousing

+14

Dovremmo essere un po 'meno dogmatici. Penso che per qualcuno che inizia questo business, questo è vicino alla programmazione. –

risposta

23

Non è del tutto chiaro se si sta incollando dall'editor di script di RStudio (che ha 4 o 5 colori) o dalla console R (script + output) all'interno di RStudio (che ha solo 2 colori).

Se si incolla dalla console, selezionare nuovamente "Incolla speciale". Ci dovrebbe essere un'opzione per "Formato HTML" che farà ciò che ti serve (anche se potrebbe essere necessario ridimensionare il carattere per far sì che tutto si adatti correttamente in base ai margini della pagina).

Se si sta incollando dall'editor di script, non si è fortunati con una soluzione diretta di copia e incolla. Ma esiste una soluzione copy-and-paste-and-copy-and-paste ...

Una soluzione potrebbe essere quella di utilizzare Notepad++. Da RStudio, salva il tuo script (con estensione ".R"), quindi apri lo script in Notepad ++. (Oppure copia e incolla da RStudio a Notepad ++, ma assicurati di impostare la lingua del file - dal menu "Lingua" - a R). Quando il tuo script è evidenziato correttamente in Notepad ++ vai al menu "Plugins> NppExport> Copia HTML negli Appunti" per copiare il file aperto. Questo può essere incollato in MS Word con il formato HTML.

+0

Fantastico! Sto lavorando nell'editor degli script e stavo cercando di incollare da lì. Non sapevo che Notepad ++ era così intelligente. Grazie mille! – dubhousing

+0

Funziona come previsto. Contrassegnerò come corretto - non ho notato l'opzione sotto i pulsanti upvote/downvote (che non posso ancora utilizzare). Grazie ancora! – dubhousing

+0

Funziona con PowerPoint 2016 su Windows 10 anche – scs

0

Dopo aver copiato dalla finestra Rstudio console e si incolla in un documento Word, è necessario mettere in evidenza tutto il testo appena copiato e modificare il carattere in Courier New. Questo ti darà la stessa spaziatura e allineamento che avevi nella finestra della console Rstudio.

+1

Quasi. Ci sarà troppo spazio tra le righe, perché ognuno inizia un nuovo paragrafo. La cosa migliore è definire un codice del foglio di stile e impostare "dopo" su 0pt. –

+0

Grazie ragazzi, proverò ad accoppiare i vostri due suggerimenti. – dubhousing

6

Supponendo di avere accesso a internet

  1. copia e incolla per gist.gisthub.com
  2. Seleziona 'R' come la lingua - questo dovrebbe fornire colori
  3. Hit creare (segreto o pubblico) gist
  4. Copy e incolla dall'elenco al tuo word processor.

Rispetto alla soluzione di Notepad ++:

  • un backup in linea al codice, con una registrazione del tempo in cui si ritagliato esso.
  • Non è necessario installare nessun altro software, utile se sei uno studente che usa un computer pubblico.
+0

OK, è fantastico. Grazie per segnalarlo! – dubhousing

+1

Buona risposta. L'unico problema è che forse non vuoi condividere il tuo codice pubblicamente. – fsmart

+1

non funziona più, sembra che abbiano rimosso l'opzione per scegliere la lingua – stats0007

13

Solo nel caso qualcun altro cerca questa domanda ...

Un altro modo per avere tutto il codice sorgente in un documento di Word con un formato di bell'aspetto usando RStudio è quello di utilizzare l'opzione File/Compile Notebook, scegliendo MS Word come formato di output.

Utilizzando questa opzione, un documento .docx verrà generato con l'output del proprio script oltre al codice sorgente originale. Lo script verrà comunque eseguito.

Se non si desidera valutare il codice (si desidera semplicemente un semplice copia-incolla), è possibile aggiungere #+eval=FALSE all'inizio dello script e quindi il codice sorgente verrà riprodotto nel documento word senza essere valutata.

Questo approccio si basa su knitr. Ecco un esempio se qualcuno vuole iniziare a giocare con questo.

#' --- 
#' title: "My homework" 
#' author: John Doe 
#' date: June 15, 2015 
#' output: word_document 
#' --- 

# The header above sets some metadata used in the knitr output 

# Conventional comments are formatted as regular comments 

# Comments starting with "#+" control different knitr options. 

#+echo=FALSE,message=FALSE,warning=FALSE 
library(ggplot2) 


#+echo=TRUE 
#' Comments with a "+" sign are used to tell knitr what should be 
#' done with the chunk of code: 
#' 
#' - echo: Show the original code or not 
#' - eval: Run the original code or not 
#' - message: Print messages 
#' - warning: Print warnings 
#' - error: Print errors 
#' ... 

#' Comments with an apostrophe "'" will be printed as regular text. 
#' This is very useful to explain what you are actually doing! 

# Regular comments can be used to document the code as usual 
# Figures are printed: 
ggplot(mpg, aes(x=cty, y=hwy)) + geom_point(aes(color=class)) 

#' Formatting **options** are possible. 
#' Even [links](http://stackoverflow.com/questions/10128702/how-to-preserve-formatting-from-rstudio-when-copy-pasting-to-word) 
#' 


#' This will show all the packages and versions used to generate this document. 
#' It can be used to make sure that your teacher has all he needs to run your script 
#' if he/she wants to. 
sessionInfo() 

Word document example

0

Sono d'accordo con zeehio che l'uso Knitr è probabilmente l'opzione migliore. Ma un altro modo è utilizzare i passi Pretty R tool e "testo del documento aperto" here. Fondamentalmente basta copiare e incollare il codice nella bella R, e copiare e incollare l'output (non l'html) nel documento aperto.