我是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的感染数据的频率图?
此外,是否有任何简单的方法来绘制相对频率图?
答案 0 :(得分:1)
问题可能是您将具有多个列的data.frame传递给barplot
,而函数需要一个数字向量。
相对频率的常用函数是hist
,例如,
hist(subset(infert, case==0)$age, freq=FALSE)
表示age
列的相对频率。如果涉及到分类数据,则您使用barplot
和table
dat <- infert[infert$case==0, "education"]
barplot(table(dat)/length(dat))