내용 |
@Override
public Map<String, Object> getSummary(int fileId) {
Map<String, Object> rData = new Hashtable<String, Object>();
UploadFileVO file = fileService.getFile(fileId);
byte[] data = file.getFileData();
long exp;
try {
exp = rEngine.rniPutString(new String(data, "UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
rEngine.rniAssign("data", exp, 0);
rEngine.eval("Sys.setlocale(category=\"LC_ALL\", locale=\"English_United States.1252\")");
rEngine.eval("dataFrame <- read.table(text=data, sep=\",\", fill=TRUE, header=TRUE, stringsAsFactors=FALSE, skipNul=TRUE, encoding=\"UTF-8\", fileEncoding=\"UTF-8\")");
REXP summary = rEngine.eval("(dfSummary <- summary(dataFrame))");
rData.put("summary", summary.asStringArray());
REXP colNames = rEngine.eval("colnames(dfSummary)");
rData.put("colNames", colNames.asStringArray());
REXP nrow = rEngine.eval("nrow(dfSummary)");
rData.put("nrow", nrow.asInt());
return rData;
} |