Bạn có thể sao chép và dán từ R sang Excel không?

Mặc dù có một bộ thư viện để nhập/xuất dữ liệu sang/từ R (lần xuất hiện mới nhất là readit giúp đọc hầu hết dữ liệu hình chữ nhật thực sự dễ dàng), đôi khi việc sao chép và dán nhanh từ/sang Excel rất hữu ích

Giải pháp của Andrew Landgraf dựa trên hai chức năng. -

# Sao chép từ Excel sang R

read.excel <- function (header=TRUE,...) {

read.table ("clipboard",sep="\t",header=header,...)

}

# Dán từ R sang Excel

write.excel <- function (x,row.names=FALSE,col.names=TRUE,...) {

write.table (x,"clipboard",sep="\t",row.names=row.names,col.names=col.names,...)

}

Chỉ cần sao chép và dán hai chức năng chức năng vào R

Để dán dữ liệu từ Excel sang R, hãy sao chép (ctrl-c) các ô từ Excel rồi chạy phần sau trong R

df <- read.excel ()

# để ghi tập dữ liệu vào Excel, chỉ cần chạy lệnh này trong R rồi dán (ctrl-p) vào Excel

write.excel (df)

Tôi đồng ý với @jrkrideau rằng bạn có thể viết bảng của mình vào hồ sơ tốt hơn. Bạn cũng có thể sử dụng viết. csv và sau đó mở tệp csv trong Excel, nếu việc đọc/ghi tệp excel khó khăn (đôi khi có thể xảy ra)

Tuy nhiên, nếu bạn thực sự quyết tâm sao chép và dán dữ liệu của mình trực tiếp từ R, thì một điều bạn có thể thử là hàm View() trong RStudio. Giả sử bạn đang làm việc trong RStudio và bảng của bạn có tên là "tab". Bạn có thể thực hiện

df <- read.excel ()
2 và ngăn trình xem dữ liệu sẽ mở ra, hiển thị cho bạn chế độ xem dữ liệu giống Excel hơn. Nói chung, tôi đã khá may mắn khi sao chép/dán từ trình xem bảng vào excel, google sheet, v.v.

Những ghi chú này giải thích cách di chuyển dữ liệu giữa R và Excel cũng như các ứng dụng Windows khác qua khay nhớ tạm

viếtClipboard

R có một chức năng

df <- read.excel ()
3 thực hiện những gì tên ngụ ý. Tuy nhiên, đối số của
df <- read.excel ()
3 có thể cần được chuyển thành một loại ký tự. Ví dụ mã

> x <- "hello world"
> writeClipboard(x)

sao chép chuỗi “hello world” vào khay nhớ tạm như mong đợi. Tuy nhiên mã

> x <- 3.14
> writeClipboard(x)

tạo ra thông báo lỗi

Error in writeClipboard(str, format) : 
  argument must be a character vector or a raw vector

Giải pháp là gọi

df <- read.excel ()
5, truyền đối tượng
df <- read.excel ()
6 thành một chuỗi ký tự

Tất cả các biến trong R là vectơ và các phần tử của vectơ có thể có các loại khác nhau. Nếu một phần tử của vectơ là một chuỗi ký tự, tất cả các phần tử sẽ được chuyển thành chuỗi mà không cần câu lệnh

> x <- 3.14
> writeClipboard(x)
0 rõ ràng. Sau khi một vectơ đã được sao chép vào khay nhớ tạm, các thành phần của vectơ sẽ được phân tách bằng dòng mới khi dán vào tài liệu

đọcClipboard

Chức năng đồng hành cho

df <- read.excel ()
3 là
> x <- 3.14
> writeClipboard(x)
2

Lệnh

x <- readClipboard()

sẽ gán nội dung của clipboard cho vector

df <- read.excel ()
6. Mỗi dòng trở thành một phần tử của
df <- read.excel ()
6. Các phần tử sẽ là chuỗi ký tự, ngay cả khi khay nhớ tạm chứa một cột số trước khi lệnh
> x <- 3.14
> writeClipboard(x)
2 được thực thi. Nếu bạn chọn một khối số từ Excel, thì mỗi hàng sẽ trở thành một chuỗi duy nhất chứa các tab có ranh giới ô ban đầu

quét

Bạn có thể sử dụng hàm

> x <- 3.14
> writeClipboard(x)
6 để sao chép một cột số từ Excel sang R. Sao chép cột từ Excel, chạy
> x <- 3.14
> writeClipboard(x)
7, nhập Ctrl-v để dán vào R và nhấn enter để báo hiệu kết thúc nhập vào
> x <- 3.14
> writeClipboard(x)
6. Sau đó,
df <- read.excel ()
6 sẽ chứa các số từ Excel dưới dạng số, không phải dưới dạng chuỗi được trích dẫn. Lưu ý rằng
> x <- 3.14
> writeClipboard(x)
6 chỉ hoạt động với các cột số. R sẽ đưa ra thông báo lỗi nếu cột được sao chép chứa một chuỗi. Nếu có một ô trống, chỉ các số phía trên ô trống đầu tiên sẽ được sao chép vào vectơ R

Lưu ý rằng

> x <- 3.14
> writeClipboard(x)
6 hoạt động với các cột trong Excel. Nếu bạn sao chép một hàng số từ Excel và gọi
> x <- 3.14
> writeClipboard(x)
6, các số sẽ được nối thành một số duy nhất trong R. Ví dụ: nếu bạn sao chép các ô liền kề theo chiều ngang chứa 19 và 44 và chạy
> x <- 3.14
> writeClipboard(x)
7, thì
df <- read.excel ()
6 sẽ chứa 1944. Để sao chép một hàng từ Excel, trước tiên hãy chuyển vị trí của hàng đó trong Excel, sau đó sao chép kết quả dưới dạng một cột

Hàm

Error in writeClipboard(str, format) : 
  argument must be a character vector or a raw vector
5 không giới hạn trong Excel. Nó có thể được sử dụng để dán một cột số được sao chép từ các ứng dụng khác, chẳng hạn như Word hoặc Notepad

đọc. bảng và viết. cái bàn

Các chức năng trên chỉ hoạt động với các cột dữ liệu; . Để di chuyển một khối ô từ

Error in writeClipboard(str, format) : 
  argument must be a character vector or a raw vector
6 sẽ sao chép một bảng
df <- read.excel ()
6 vào khay nhớ tạm theo cách mà nó có thể được dán vào Excel mà vẫn giữ nguyên cấu trúc bảng. Theo mặc định, tên hàng và cột sẽ đi kèm với nội dung của bảng. Để bỏ lại các tên hàng, hãy thêm đối số
Error in writeClipboard(str, format) : 
  argument must be a character vector or a raw vector
8 vào lệnh gọi tới
Error in writeClipboard(str, format) : 
  argument must be a character vector or a raw vector
9

R có tương thích với Excel không?

Không cần phải ngạc nhiên khi R đã triển khai một số cách để đọc, viết và thao tác với tệp Excel (và bảng tính nói chung). Hướng dẫn đọc và nhập tệp Excel vào R này sẽ cung cấp tổng quan về một số tùy chọn tồn tại để nhập tệp Excel và bảng tính của các phần mở rộng khác nhau vào R.

Bạn có thể sao chép và dán vào R không?

Cũng có thể sao chép và dán dữ liệu được lưu trữ trong tệp TXT vào R . Đầu ra trước đó hoàn toàn giống như trong Ví dụ 1. Tuy nhiên, lần này chúng tôi đã sao chép dữ liệu từ tệp văn bản thay vì tệp Excel.