"xlsx"패키지를 사용하여 R 및 Excel 프로젝트에서 작업하고 있는데 다음과 같은 문제가 있습니다.R 스크립트를 실행할 VBA 코드 : Excel에서 출력 이미지 문제
"Model.R"이라는 스크립트로 분석이 수행됩니다. "Output.R"이라는 두 번째 스크립트는 분석 결과 (일부 차트 포함)를 생성합니다.
source("Output.R")
두 스크립트를 모두 R Studio에서 실행해도 아무런 문제가없고 출력이 정확합니다. ,
Sub Run_script()
Dim cmdLine As String
cmdLine="C:\\Program Files\\R\\R-3.3.1\\bin\\Rscript C:\\...\\Model.R"
shell cmdLine
End Sub
이제 모든 것이 잘 작동하고 출력이 올바르게 새 Excel 파일에 인쇄되어 있습니다 :
지금, 나는 매크로에 대해 다음 VBA 코드를 사용하여 스크립트를 실행하는 엑셀 "인터페이스"를 내장 이제는 모든 차트가 내부에 아무것도없는 빈 상자라는 사실에서 한 부분입니다.
이 문제를 해결하는 방법을 알고있는 사람이 있습니까? 예를 들어 Excel에서 스크립트를 실행하는 다른 방법이있을 수 있습니다.
감사합니다
편집 여기
예로서, 생산 및 차트 중 하나를 저장하는 R 코드 : 그래서 이미지가 PNG 파일로 저장됩니다
hist(P1,probability=FALSE,main = "",breaks = 20)
title("CE Anno -1")
dev.copy(png,filename="CE1.png");
dev.off()
은 동일한 작업 디렉토리에 있습니다. 그럼,이 XLSX 패키지와 다음 코드를 사용하여 Excel에서 인쇄 :
outwb <- createWorkbook()
SummaryCE <- createSheet(outwb, sheetName = "Summary CE")
addPicture("CE1.png", SummaryCE, scale = 0.5, startRow = 11, startColumn = 1)
saveWorkbook(outwb, "Risultati RO.xlsx")
내가 말했듯이 나는 R 스튜디오에서 실행하는 경우,이 코드는 잘 작동합니다. 이전 VBA 코드를 사용하여 명령 줄에서 호출하면 Excel이 제대로 만들어 지지만 이미지는 빈 상자입니다.
EDIT 당신의 도움에 2 개
덕분에, 나는 성공적으로 문제를 해결했다. 내가 지금하고있는 일은 동일한 스크립트 모델을 기반으로하는 보고서 (Word 형식, 여기서 LaTex는 사용할 수 없음)를 자동으로 생성하는 것입니다.
이렇게하려면 Markdown 기능을 사용하고 R Markdown 파일 "Report.Rmd". 여기에 기본적으로 Model.R 실행 결과로 작업 공간을로드합니다.
load("Mywork.RData")
다음 테이블, 차트 및 설명을 추가하십시오. 그 후, 나는 이전과 비슷한 문제를 가지고 다시 "Model.R"스크립트
render("Report.Rmd")
에 다음 줄을 사용하여 Word 문서를 생성합니다. R Studio에서 실행하면 모든 것이 정상입니다. 이전 Excel 인터페이스를 사용하면 Word 출력이 해당 폴더에 나타나지 않습니다.
누구든지이 문제의 원인을 알고 있습니까?
감사합니다. 몇 가지 질문에 대해 죄송합니다. R과 편하지 만 VBA를 처음 사용합니다.
당신은 당신은 * 이미지 *, * 차트 *와 * 출력 * 참조 유지하지만 우리는 어떤 코드를 실행 아무것도 단지 명령 행 호출을 볼 –
VBA 또는 명령 줄에서 백 슬래시를 이스케이프 할 필요가 없습니다. 전체 프로세스를 볼 수 있도록 R 코드를 게시 할 수 있습니까? R 스크립트는 Excel에서 렌더링 할 차트 이미지를 생성합니까? – Parfait
차트는 Excel에서 쉘이 캡처 할 수없는 별도의 창에 그려집니다. 차트를 디스크의 R 스크립트 내에서 png/jpg에 저장하고 vba 스크립트를 사용하여 Excel에서 이러한 이미지 파일을로드하십시오. –