R에서 같은 줄에 문자열 및 변수 내용 인쇄


199

텍스트와 변수 내용을 같은 줄에 인쇄하는 방법이 있습니까? 예를 들어

wd <- getwd()
print("Current working dir: ", wd)

나는 이것을 할 수있는 구문에 대해 아무것도 찾을 수 없었다.

r  printing 

답변:


301

paste함께 사용할 수 있습니다print

print(paste0("Current working dir: ", wd))

또는 cat

cat("Current working dir: ", wd)

8
당신은 아마 원 sep = ''하거나 여분의 공간을 얻을 것입니다.
hadley

8
사용하여 cat()나는 NULL끝에 :(
ragesz

5
: 당신은 같은 프린트의 고양이 내 세우면 @ragesz 난 단지 끝에 널 (null)을 얻을 print(cat("test", var)) 수 있어야cat("test", var)
Spidfire

62

{glue}는 훨씬 나은 문자열 보간법을 제공합니다 . 다른 답변을 참조하십시오 . 또한 Dainis가 올바르게 언급했듯이 sprintf()문제가없는 것은 아닙니다.

또한있다 sprintf():

sprintf("Current working dir: %s", wd)

콘솔 출력에 인쇄하려면, 사용 cat()또는 message():

cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))

또 다른 좋은 옵션! 이것은 다른 스크립팅 언어와 매우 유사하며 여러 변수를 구현하려는 텍스트가있는 경우 매우 편리합니다. 감사!

1
특히 함수 인수를 작성하는 경우 가장 편리한 옵션입니다. 붙여 넣기하면 빠르게 읽을 수없는 혼란이됩니다.
user27636

2
참고 sprintf인쇄되지 않습니다, 그냥 문자열을 포맷합니다. 스크립트에는 print (sprintf (...))와 같은 것이 필요합니다.
CHS


17

가장 쉬운 방법은 사용하는 것입니다 paste()

> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"

paste0() 결과는 다음과 같습니다.

> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"

문자열과 x 사이에는 기본 구분 기호가 없습니다. 문자열 끝에 공백을 사용하는 것이 빠른 해결책입니다.

> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"

그런 다음 두 기능 중 하나를 print()

> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"

또는

> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"

다른 사용자가 언급했듯이 다음을 사용할 수도 있습니다. cat()


14

{접착제} 패키지는 문자열 보간을 제공합니다. 이 예에서는 {wd}변수의 내용으로 대체됩니다. 복잡한 표현도 지원됩니다.

library(glue)

wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c

reprex 패키지 (v0.2.1) 에서 2019-05-13에 작성

인쇄 된 출력에 [1]인공물과 "따옴표가 포함되어 있지 않은지 확인하십시오 cat().


8

다른 사용자가 말했듯이 cat ()이 가장 좋은 옵션 일 것입니다.

@krlmlr은 sprintf () 사용을 제안했으며 현재 3 위 답변입니다. sprintf ()는 좋은 생각이 아닙니다. R 문서에서 :

형식 문자열은 OS의 sprintf 함수로 전달되며 잘못된 형식으로 인해 R 프로세스가 충돌 할 수 있습니다.

cat 또는 다른 옵션보다 sprintf ()를 사용해야 할 이유가 없습니다.


2

paste0 또는 cat 메소드를 사용하여 문자열을 R의 변수 값과 결합 할 수 있습니다.

예를 들어 :

paste0("Value of A : ", a)

cat("Value of A : ", a)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.