Hướng dẫn write excel multiple sheets r - viết excel nhiều sheet r

Kích thước dữ liệu thông tin là nhỏ, R có nhiều gói và chức năng có thể được sử dụng theo yêu cầu của bạn.

write.xlsx, write.xlsx2, xlconnect cũng thực hiện công việc nhưng đôi khi chúng chậm như so sánh với openxlsx. also do the work but these are sometimes slow as compare to openxlsx.

Vì vậy, nếu bạn đang xử lý các bộ dữ liệu lớn và gặp lỗi Java. Tôi sẽ đề nghị có một cái nhìn của "OpenXLSX" thực sự tuyệt vời và giảm thời gian xuống còn 1/12."openxlsx" which is really awesome and reduce the time to 1/12th.

Tôi đã thử nghiệm tất cả và cuối cùng tôi thực sự ấn tượng với hiệu suất của các khả năng OpenXLSX.

Dưới đây là các bước để viết nhiều bộ dữ liệu thành nhiều tờ.

 install.packages("openxlsx")
 library("openxlsx")

    start.time <- Sys.time()

    # Creating large data frame
    x <- as.data.frame(matrix(1:4000000,200000,20))
    y <- as.data.frame(matrix(1:4000000,200000,20))
    z <- as.data.frame(matrix(1:4000000,200000,20))

    # Creating a workbook
    wb <- createWorkbook("Example.xlsx")
    Sys.setenv("R_ZIPCMD" = "C:/Rtools/bin/zip.exe") ## path to zip.exe

Sys.setenv ("r_zipcmd" = "c: /rtools/bin/zip.exe") phải tĩnh vì nó tham khảo một số tiện ích từ rtools.

LƯU Ý: Incase rtools không được cài đặt trên hệ thống của bạn, vui lòng cài đặt nó trước để trải nghiệm suôn sẻ. Đây là liên kết để tham khảo của bạn: (chọn phiên bản thích hợp)

https://cran.r-project.org/bin/windows/rtools/ Kiểm tra các tùy chọn theo liên kết bên dưới (cần chọn tất cả hộp kiểm trong khi cài đặt)

https://cloud.githubusercontent.com/assets/7400673/12230758/99fb2202-b8a6-11e5-82e6-836159440831.png

    # Adding a worksheets : parameters for addWorksheet are 1. Workbook Name 2. Sheet Name

    addWorksheet(wb, "Sheet 1")
    addWorksheet(wb, "Sheet 2")
    addWorksheet(wb, "Sheet 3")

    # Writing data in to respetive sheets: parameters for writeData are 1. Workbook Name 2. Sheet index/ sheet name 3. dataframe name

    writeData(wb, 1, x)

    # incase you would like to write sheet with filter available for ease of access you can pass the parameter withFilter = TRUE in writeData function.
    writeData(wb, 2, x = y, withFilter = TRUE)

    ## Similarly writeDataTable is another way for representing your data with table formatting:

    writeDataTable(wb, 3, z)

    saveWorkbook(wb, file = "Example.xlsx", overwrite = TRUE)

    end.time <- Sys.time()
    time.taken <- end.time - start.time
    time.taken

Gói OpenXLSX thực sự tốt cho việc đọc và viết dữ liệu khổng lồ từ/ trong các tệp Excel và có rất nhiều tùy chọn để định dạng tùy chỉnh trong Excel. package is really good for reading and writing huge data from/ in excel files and has lots of options for custom formatting within excel.

Một thực tế thú vị là chúng ta không phải bận tâm về bộ nhớ heap java ở đây.


Bạn có thể sử dụng cú pháp cơ bản sau đây để xuất nhiều khung dữ liệu trong r sang nhiều bảng tính trong Excel:

library(openxlsx)

dataset_names <- list('Sheet1' = df1, 'Sheet2' = df2, 'Sheet3' = df3)
write.xlsx(dataset_names, file = 'mydata.xlsx')

Ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế.

Ví dụ: Xuất nhiều khung dữ liệu sang nhiều bảng Excel

Giả sử chúng ta có ba khung dữ liệu sau trong r:

#define data frames
df1 = data.frame(playerID=c(1, 2, 3, 4),
                 team=c('A', 'B', 'B', 'C'))

df2 = data.frame(playerID=c(1, 2, 3, 4),
                 rebounds=c(7, 8, 8, 14))

df3 = data.frame(playerID=c(1, 2, 3, 4),
                 points=c(19, 22, 25, 29))

Chúng ta có thể sử dụng cú pháp sau để xuất cả ba khung dữ liệu này để tách các bảng trong cùng một tệp Excel:

library(openxlsx)

#define sheet names for each data frame
dataset_names <- list('Sheet1' = df1, 'Sheet2' = df2, 'Sheet3' = df3)

#export each data frame to separate sheets in same Excel file
openxlsx::write.xlsx(dataset_names, file = 'mydata.xlsx') 

Khi tôi điều hướng đến vị trí trên máy tính của mình, nơi tờ Excel được xuất, tôi có thể xem từng khung dữ liệu trong các bảng của chúng trong cùng một tệp Excel được gọi là mydata.xlsx:mydata.xlsx:

Sheet1:

Hướng dẫn write excel multiple sheets r - viết excel nhiều sheet r

Sheet2:

Hướng dẫn write excel multiple sheets r - viết excel nhiều sheet r

Sheet3:

Hướng dẫn write excel multiple sheets r - viết excel nhiều sheet r

Lưu ý rằng chúng tôi đã xuất ba khung dữ liệu sang ba tờ riêng biệt trong ví dụ này, nhưng chúng tôi có thể sử dụng cùng một cú pháp để xuất bất kỳ số lượng khung dữ liệu nào mà chúng tôi thích.

Tài nguyên bổ sung

Các hướng dẫn sau đây giải thích cách xuất các loại tệp khác trong r:

Cách xuất khung dữ liệu sang tệp excel trong r Cách xuất khung dữ liệu sang tệp CSV trong r Cách xuất nhiều lô vào tệp PDF trong r trong r
How to Export a Data Frame to a CSV File in R
How to Export Multiple Plots to PDF File in R

R đọc tệp excel có nhiều trang không?

Có nhiều gói bên ngoài khác nhau được sử dụng để đọc các tệp XLSX với nhiều trang.Ban đầu, phương thức excel_sheets () được gọi để tìm nạp tất cả các tên bảng tính có trong sổ làm việc Excel, với đường dẫn tệp được chỉ định.. Initially, the excel_sheets() method is invoked to fetch all the worksheet names contained in the Excel workbook, with the specified file path.

Chúng ta có thể tự động hóa Excel bằng R không?

Tự động hóa việc đọc, viết, hợp nhất và phân tách nhiều tệp Excel bằng R. Excel là một trong những công cụ nổi bật khi xử lý dữ liệu trong phần lớn các doanh nghiệp.. Excel is one of the prominent tools when dealing with data in the majority of businesses.

Bạn có thể tải các tệp excel lên r không?

Nhập các tệp Excel vào R bằng gói ReadXL Gói READXL, được phát triển bởi Hadley Wickham, có thể được sử dụng để dễ dàng nhập các tệp Excel (XLS | XLSX) vào R mà không cần bất kỳ phụ thuộc bên ngoài nào.The readxl package, developed by Hadley Wickham, can be used to easily import Excel files (xls|xlsx) into R without any external dependencies.

Liệu Tidyverse có bao gồm readxl?

Cách dễ nhất để cài đặt phiên bản phát hành mới nhất từ CRAN là cài đặt toàn bộ Tidyverse.Lưu ý: Bạn vẫn sẽ cần tải READXL một cách rõ ràng, bởi vì nó không phải là gói Tidyverse lõi được tải qua thư viện (TIDYVERSE).you will still need to load readxl explicitly, because it is not a core tidyverse package loaded via library(tidyverse) .