如何解决'x'必须是r中的数字?

时间:2019-04-09 11:45:06

标签: r histogram numeric

我正在尝试制作直方图,但是我一直遇到错误消息。 这是我的代码

library(readxl)

data <- read_excel("data.xls")

View(data)
attach(data)
names(data)        

hist(data)

这是我的样品。我想创建一个直方图,y轴为0-100,x轴(安全,基本,有限等)在图中为数字(39、29、8、12、12)。这有道理吗?

   Safely  Basic  Limited  Unimproved  Open

   39     29         8          12      12
  

hist.default(data)中的错误:“ x”必须为数字

我在做什么错?我不知道该错误消息。

2 个答案:

答案 0 :(得分:0)

在您的情况下,data不是变量,而是包含变量的数据框。 您可以像这样获取每个单个变量的直方图:

library(readxl)
data <- read_excel("data.xls")

如果要查看变量Safely的直方图:

hist(data$Safely)

您可以以相同的方式访问data中包含的每个变量。

答案 1 :(得分:0)

问题在于,当它需要一个向量作为参数hist()时,您正在将数据帧传递给x函数(请参见?hist)。根据您编辑的帖子,您需要:

hist(as.numeric(data[1,]))

data[1,]在数据框第一行中创建矢量。

尽管看起来您实际上可能正在寻找条形图。在这种情况下,请尝试:

plot_data <- data.frame(t(data)) %>% 
  tibble::rownames_to_column()

ggplot(plot_data,aes(x = rowname,y=t.data.)) + 
  stat_identity(geom = "bar")

来自@ user2554330的一种简单的基本图形方法:

f <- as.numeric(data[1,])
names(f) <- names(data)
barplot(f)