R에서는 pipe()
을 사용하여 파이프 연결을 열어 쓸 수 있습니다. 내가 이해하지 못하는 다음 상황을 관찰했다. 이제 예를 들어 python
파이프를 사용하자 :R에서 파이프 연결을 닫기 전에 파이프 연결에서 출력을 얻는 방법?
print()
의 출력이 바로 R 콘솔에 표시 될했지만, 사실은 출력이 나는 파이프 연결을 종료 한 후에 만 온다 내가 기다리고 있었다
z = pipe('python', open='w+')
cat('x=1\n', file=z)
cat('print(x)\n', file=z)
cat('print(x+2)\n', file=z)
cat('print(x+2\n', file=z)
cat(')\n', file=z)
close(z)
> z = pipe('python', open='w+')
>
> cat('x=1\n', file=z)
> cat('print(x)\n', file=z)
> cat('print(x+2)\n', file=z)
> cat('print(x+2\n', file=z)
> cat(')\n', file=z)
>
> close(z)
1
3
3
제 질문은 연결을 종료하기 전에 어떻게 출력을 얻을 수 있습니까? 이 질문의
> z = pipe('python', open='w+')
>
> cat('x=1\n', file=z)
> cat('print(x)\n', file=z)
> cat('print(x+2)\n', file=z)
> cat('print(x+2\n', file=z)
> cat(')\n', file=z)
>
> x = capture.output(close(z))
1
3
3
> x
character(0)
배경은 knitr
engines입니다 : 하나, 그것은 capture.output()
를 사용하여 출력을 캡처 할 수있을 것 같지 않습니다. 파이썬 같은 인터프리터 언어의 경우, 영구적 인 "터미널"을 열어서 코드를 계속 작성하여 출력 할 수 있기를 바랍니다. 그래도 pipe()
이 올바른 방법인지 확실하지 않습니다.