我有这段代码。
a = c("a", 1)
b = c("b",2)
c = c('c',3)
d = c('d',4)
e = c('e',5)
z = data.frame(a,b,c,d,e)
hist = hist(as.numeric(z[2,]))
我正在尝试使用直方图,使得这些二进制文件为a,b,c,d,e
,频率值为1,2,3,4,5
。
然而,它给了我一个空屏幕(直方图模型根本没有箱子)
答案 0 :(得分:1)
您正在绘制第2行每列的因子级别,在这种情况下总是为1。
在创建数据框时,您需要添加stringsAsFactors=FALSE
以避免将数字转换为因子。这应该有效:
z = data.frame(a,b,c,d,e,stringsAsFactors=FALSE)
hist(as.numeric(z[2,]))
答案 1 :(得分:1)
也许这对你有用:它创建一个数据框,其中 x 元素是字母 a 到'e',而 y 元素是数字1到5.然后呈现直方图并告诉ggplot不执行任何分箱。
library(ggplot2)
tmp <- data.frame(x = letters[1:5], y = 1:5)
ggplot(tmp, aes(x = x, y = y)) + geom_histogram(stat = "identity")