2014-07-11 16 views
15

Mam pytanie, które jest dokładnie podobne do tego question.Skopiuj dane R data.frame do arkusza kalkulacyjnego Excel

W ramach mojej pracy, muszę skopiować dane wyjściowe z konsoli Studio Studio do arkusza Excela, aby tworzyć wykresy Excel. Jednak konsola Studio R używa sformatowanego tekstu, którego program Excel nie czyta się tak dobrze. Aby to zrekompensować, zawsze kopiuję z konsoli R Studio, wklejając do notatnika, a następnie kopiując do Excela. W ten sposób, po wklejeniu tabeli, mogę powiedzieć Excelowi, że w rzeczywistości jest to dane o ograniczonej szerokości, a nie tylko kępka tekstu.

Jak skopiować dane wyjściowe z konsoli programu R Studio tak, aby trafiały do ​​schowka jako niesformatowany tekst, aby można było wkleić go bezpośrednio do programu Excel iw ten sposób uporządkować liczby w różnych komórkach? Byłoby to bardzo pomocne, ponieważ nie lubię konieczności kopiowania/wklejania tabel do notatnika, a następnie rozwijania w celu tworzenia wykresów.

+0

To może być warta dodając swój głos do tej osoby na stronie pomocy RStudio, żądając dodatkowych funkcji w RStudio. – user02814

Odpowiedz

20

Działa z łatwym sztuczki.

Po pierwsze, musisz wizualizować swoje dane w panelu Viewer programu Rstudio (możesz użyć funkcji View()), wtedy powinieneś zacząć od ostatniej wartości do pierwszej, od dołu do góry (patrz zdjęcie) . Zwróć uwagę, że pierwsza komórka powinna zostać wybrana całkowicie. Na koniec kliknij prawym przyciskiem myszy zaznaczenie, skopiuj, a następnie wklej je w Excelu, jak chcesz, z formatem lub bez.

enter image description here

Powodzenia!

UPDATE:

na podstawie tego Post, inna alternatywa czyni nową funkcję do kopiowania data.frame do Excela poprzez clipboard:

write.excel <- function(x,row.names=FALSE,col.names=TRUE,...) { 
    write.table(x,"clipboard",sep="\t",row.names=row.names,col.names=col.names,...) 
} 

write.excel(my.df) 

i wreszcie Ctr + V w Excelu :)

+0

nie zdawałem sobie sprawy, że radzenie sobie z prawego dolnego rogu do lewego górnego jest inne niż radzenie sobie od lewego górnego do prawego dolnego – user2543622

+0

żadnego pomysłu, dlaczego tak się dzieje? – user2543622

+0

@ user2543622 Nie mam pojęcia, może to jest błąd Rstudio. –

7

Z mojego doświadczenia nie ma wygodny sposób korzystać z dwóch metod:

dla małych ramek danych, użyj View(data.frame) funkcję RStudio jest, jeśli skopiować tylko dane bez nagłówków to działa dobrze, ale jeśli chcesz skopiować z nagłówki, musisz najpierw wkleić je do notatnika, aby dodać co najmniej jeden znak do lewej górnej pustej komórki.

Dla dużych ramek danych, użyj write.csv lub write.xls (z pakietu WriteXLS)

7

Zazwyczaj korzystam z następującej funkcji:

cb <- function(df, sep="\t", dec=",", max.size=(200*1000)){ 
    # Copy a data.frame to clipboard 
    write.table(df, paste0("clipboard-", formatC(max.size, format="f", digits=0)), sep=sep, row.names=FALSE, dec=dec) 
    } 

Kilka uwag:

  • Max.size pozwala określić, jak duży schowek może stać się (w kilobajtach), zanim anuluje to ustawienie ~ 200MB teraz.
  • Działa idealnie do kopiowania R-ramek danych z sesji studio R do Excela (z moimi ustawieniami regionalnymi w UE). Konieczne może być dostosowanie symboli separatora/dziesiętnej, aby działał on w wersjach amerykańskich.

Jak używać:

df <- mtcars 
cb(df) 
# Paste in excel as 'values' 
Powiązane problemy