Có cách nào để in văn bản và nội dung biến trên cùng một dòng không? Ví dụ,
wd <- getwd()
print("Current working dir: ", wd)
Tôi không thể tìm thấy bất cứ điều gì về cú pháp cho phép tôi làm điều này.
Có cách nào để in văn bản và nội dung biến trên cùng một dòng không? Ví dụ,
wd <- getwd()
print("Current working dir: ", wd)
Tôi không thể tìm thấy bất cứ điều gì về cú pháp cho phép tôi làm điều này.
Câu trả lời:
Bạn có thể sử dụng paste
vớiprint
print(paste0("Current working dir: ", wd))
hoặc là cat
cat("Current working dir: ", wd)
cat()
tôi nhận được một NULL
kết thúc :(
print(cat("test", var))
đó làcat("test", var)
{keo} cung cấp nội suy chuỗi tốt hơn nhiều, xem câu trả lời khác của tôi . Ngoài ra, như Dainis đề cập một cách đúng đắn,
sprintf()
không phải là không có vấn đề.
Ngoài ra còn có sprintf()
:
sprintf("Current working dir: %s", wd)
Để in ra đầu ra giao diện điều khiển, sử dụng cat()
hoặc message()
:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintf
không in, nó chỉ định dạng chuỗi. Một cái gì đó như in (sprintf (...)) là cần thiết trong các tập lệnh.
Hoặc sử dụng message
message("Current working dir: ", wd)
@ câu trả lời của agstudy là phù hợp hơn ở đây
Cách dễ nhất để làm điều này là sử dụng paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
sẽ dẫn đến kết quả như sau:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Lưu ý rằng không có ngăn cách mặc định giữa chuỗi và x. Sử dụng khoảng trắng ở cuối chuỗi là cách khắc phục nhanh:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Sau đó kết hợp một trong hai chức năng với print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
Hoặc là
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Như những người dùng khác đã nêu, bạn cũng có thể sử dụng cat()
Gói {keo} cung cấp phép nội suy chuỗi. Trong ví dụ, {wd}
được thay thế bằng nội dung của biến. Biểu thức phức tạp cũng được hỗ trợ.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Được tạo vào ngày 2019-05-13 bởi gói reprex (v0.2.1)
Lưu ý cách đầu ra được in không chứa các [1]
tạo phẩm và "
dấu ngoặc kép mà các câu trả lời khác sử dụng cat()
.
Như những người dùng khác đã nói, cat () có lẽ là lựa chọn tốt nhất.
@krlmlr đề xuất sử dụng sprintf () và hiện tại đây là câu trả lời được xếp hạng thứ ba. sprintf () không phải là một ý tưởng tốt. Từ tài liệu R:
Chuỗi định dạng được truyền xuống chức năng sprintf của HĐH và các định dạng không chính xác có thể khiến chuỗi sau bị lỗi trong quá trình R.
Không có lý do chính đáng để sử dụng sprintf () trên mèo hoặc các tùy chọn khác.
bạn có thể sử dụng phương thức paste0 hoặc cat để kết hợp chuỗi với các giá trị biến trong R
Ví dụ:
paste0("Value of A : ", a)
cat("Value of A : ", a)
sep = ''
hoặc bạn sẽ có thêm một không gian.