}
return false;
}
private static boolean isDataFrame(REXP result, SimpleEvaluationObject obj) {
TableDisplay table;
try {
RList list = result.asList().at(0).asList();
int cols = list.size();
String[] names = list.keys();
if (null == names) {
return false;
}
String[][] array = new String[cols][];
List<List> values = new ArrayList<>();
List<Class> classes = new ArrayList<>();
for (int i = 0; i < cols; i++) {
// XXX should identify numeric columns
classes.add(String.class);
if (null == list.at(i)) {
return false;
}
array[i] = list.at(i).asStrings();
}
if (array.length < 1) {
return false;
}
for (int j = 0; j < array[0].length; j++) {
List<String> row = new ArrayList<>();
for (int i = 0; i < cols; i++) {
if (array[i].length != array[0].length) {
return false;
}
row.add(array[i][j]);
}
values.add(row);
}
table = new TableDisplay(values, Arrays.asList(names), classes);
} catch (NullPointerException e) {
return false;
} catch (REXPMismatchException e) {
return false;
}