Я использую colname (train) = paste («A», colname (train)), и он оказывается с той же проблемой, что и ваш.
Наконец, я выяснил, что randomForest более скупо, чем rpart , он не может распознать colname с пробелом, запятой или другой определенной пунктуацией.
Функцияpaste добавит «A» и «» в качестве разделителя с каждым colname. поэтому нам нужно отменить это пространство и использовать это предложение:
colname(train) = paste("A", colname(train), sep = "")
это добавит строку без пробела.
Вместо того, чтобы использовать DOMParser, используйте SAXParser. Это читает из входного потока или читателя, таким образом, можно сохранить XML на диске вместо того, чтобы загрузить все это в память.
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setErrorHandler(new SimpleErrorHandler());
reader.parse(new InputSource(new FileReader ("document.xml")));
Используйте libxml , который выполняет проверку , а имеет режим потоковой передачи.
Лично мне нравится использовать XMLStarlet, который имеет интерфейс командной строки и работает над потоками. Это - ряд инструментов, основывался на Libxml2.
SAX и libXML помогут, как уже упоминалось. Вы также можете попробовать увеличить максимальный размер кучи для JVM, используя опцию -Xmx. Например. установить максимальный размер кучи 512 МБ: java -Xmx512m com.foo.MyClass