从数据集中获取特定数据,绘制频率图 - 无法绘制条形图()

时间:2014-01-12 13:37:52

标签: r dataset

我是R的新手,我一直在尝试将数据集剪切到我感兴趣的字段中,然后绘制一个barplot()。

问题是,我遇到了错误,我无法继续。

这是我的代码:

data = infert;                      # Get a local copy of infert so we can edit stuff.

data <- data[data$case == 0, ];     # Split the data to those that interest us,
                                    # in this case, rows with column 'case' == 0.

data.freq = table(data);            # Plot the graph.
barplot(data.freq); 

我在源代码+运行脚本时遇到的错误:

Error in barplot.default(data.freq) : 
  'height' must be a vector or a matrix

我猜是因为数据矩阵是X * 1而不是X * N?或者由于我做data[data$case == 0, ]而错过了其他地方的维度?

无论如何,我如何解决这个问题并绘制出一个不受干扰情况= = 0的感染数据的频率图?

此外,是否有任何简单的方法来绘制相对频率图?

1 个答案:

答案 0 :(得分:1)

问题可能是您将具有多个列的data.frame传递给barplot,而函数需要一个数字向量。

相对频率的常用函数是hist,例如,

hist(subset(infert, case==0)$age, freq=FALSE)

表示age列的相对频率。如果涉及到分类数据,则您使用barplottable

走在正确的轨道上
dat <- infert[infert$case==0, "education"]
barplot(table(dat)/length(dat))