我有以下data.frame:
x = data.frame(category=c(1,1,1,1,2,2,2,2), value=c(1,2,1,1,2,2,2,1));
x$category = as.factor(x$category);
x$value = as.factor(x$value);
Run Code Online (Sandbox Code Playgroud)
并且我用ggplot2创建了一个多面条形图。
ggplot(x, aes(value, fill=category)) + geom_bar() + facet_wrap(~category);
Run Code Online (Sandbox Code Playgroud)
但是,我希望有一个饼图显示分数值(基于每个类别的总和)。然后,该图应为每个类别显示一个饼图,并在每个饼图中显示两个分数,每个值因子一个。实际数据最多有6个类别,我有1000个数据集。有通用的方法可以做到吗?
我有一个35 GB的XML文件(是的,一些组织这样做,我无法控制它),我想SAX解析.我在这里找到了一个例子:
http://www.java2s.com/Code/Java/XML/SAXDemo.htm
如何运行SAX解析器并避免加载所有内容.但是,我立刻得到了一个内存不足的错误.为什么会发生这种情况以及如何使此代码完全可扩展到任何XML文件大小?
这是我的代码:
import org.apache.log4j.Logger;
import org.xml.sax.AttributeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class XMLSAXTools extends org.xml.sax.helpers.DefaultHandler {
/**
* Logging facility
*/
static Logger logger = Logger.getLogger(XMLSAXTools.class);
private String fileName = "C:/Data/hugefile.xml";
private int counter = 0;
/** The main method sets things up for parsing */
public void test() throws IOException, SAXException,
ParserConfigurationException {
// Create a JAXP "parser factory" for creating SAX parsers
javax.xml.parsers.SAXParserFactory …Run Code Online (Sandbox Code Playgroud)