2014-07-11 17 views
15

Tôi có câu hỏi giống hệt với số question này.Sao chép dữ liệu R.trên bảng tính Excel

Là một phần công việc của mình, tôi phải sao chép đầu ra từ Bảng điều khiển R Studio sang trang tính excel để tạo biểu đồ excel. Tuy nhiên, R Studio Console sử dụng định dạng văn bản, mà excel không đọc rất tốt. Để bù lại, tôi luôn sao chép từ R Studio Console, dán vào notepad, sau đó sao chép vào Excel. Bằng cách đó, khi tôi dán một bảng, tôi có thể nói với excel rằng nó thực sự là chiều rộng cố định phân tách dữ liệu, và không chỉ là một nhóm văn bản.

Làm cách nào tôi có thể sao chép đầu ra từ bảng điều khiển R Studio để nó chuyển vào clipboard dưới dạng văn bản chưa được định dạng sao cho tôi có thể dán trực tiếp vào Excel và do đó sắp xếp số thành các ô khác nhau? Điều này sẽ rất hữu ích vì tôi không thích phải sao chép/dán bảng vào notepad sau đó excel để làm cho đồ thị.

+0

Nó có thể là giá trị thêm giọng nói của bạn với những người trên trang web hỗ trợ RStudio, yêu cầu một tính năng bổ sung trong RStudio. – user02814

Trả lời

20

Nó hoạt động với một thủ thuật đơn giản. Trước tiên, bạn phải trực quan hóa dữ liệu của mình trong khung Viewer của Rstudio (bạn có thể sử dụng hàm View()), sau đó bạn nên bắt đầu chọn từ giá trị cuối cùng đến giá trị đầu tiên, từ dưới lên trên (xem hình) . Lưu ý rằng ô đầu tiên phải được chọn hoàn toàn. Cuối cùng, nhấp chuột phải vào lựa chọn, sao chép, và sau đó dán nó trong Excel như bạn muốn, có hoặc không có định dạng.

enter image description here

Chúc may mắn!

UPDATE:

dựa trên Post này, thay thế khác được thực hiện một chức năng mới để sao chép data.frame của bạn sang Excel qua 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) 

và cuối cùng Ctr + V trong Excel :)

+0

didnt nhận ra rằng đối phó từ dưới cùng bên phải trên cùng bên trái là khác nhau mà đối phó từ trên trái sang phải dưới cùng – user2543622

+0

bất kỳ ý tưởng tại sao điều đó xảy ra? – user2543622

+0

@ user2543622 không có ý tưởng, có thể nó là một lỗi của Rstudio. –

7

Từ kinh nghiệm của tôi không có cách nào thuận tiện, tôi sử dụng hai phương pháp:

Đối với khung dữ liệu nhỏ, sử dụng View(data.frame) chức năng RStudio, nếu bạn chỉ copy dữ liệu mà không tiêu đề nó hoạt động tốt, nhưng nếu bạn muốn sao chép với sau đó bạn phải dán nó vào notepad trước để thêm ít nhất một ký tự vào ô trống ở trên cùng bên trái.

Đối với khung dữ liệu lớn, sử dụng write.csv hoặc write.xls (từ gói WriteXLS)

7

Tôi thường có chức năng sau:

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) 
    } 

Một vài lưu ý:

  • Max.size phép bạn chỉ định lớn như thế nào clipboard có thể trở thành (tính bằng kilobyte) trước khi nó hủy, nó thiết lập để ~ 200MB ngay bây giờ.
  • Nó hoạt động hoàn hảo để sao chép khung dữ liệu R từ phiên R studio sang Excel (bằng ngôn ngữ EU của tôi). Bạn có thể phải điều chỉnh dấu tách/ký hiệu thập phân để làm cho nó hoạt động với các phiên bản Hoa Kỳ.

Làm thế nào để sử dụng:

df <- mtcars 
cb(df) 
# Paste in excel as 'values' 
Các vấn đề liên quan