我是R语言的新手,想从一个csv文件(只有一行数值)中创建一个直方图,其中x轴和y轴分别表示值和频率。请问有什么方法可以实现吗?
我也是一个R新手,遇到了同样的问题。实际上,我犯了两个错误,现在我将把它们都描述一下。
错误1:向hist()传递频率表。 最初,我试图将一个频率表传递给hist()
,而不是传入原始数据。修复此问题的一种方法是使用rep()
("复制")函数将您的频率表转换为原始数据集,如此处所述:
然而,我决定只读取原始数据集而不是频率表来解决这个问题。
错误2:错误的数据类型。 我的原始数据CSV文件包含两列:hostname
和bookings
(想法是计算每个主机在某个给定时间段内生成的预订数量)。我将其读入表格中。
> tbl <- read.csv('bookingsdata.csv')
然后当我尝试基于第二列生成直方图时,我做了这个:
> hist(tbl[2])
这给了我你在评论中提到的“'x' must be numeric”错误。(它试图将“bookings”列标题读取为数据值。)
这样修复了它:
> hist(tbl$bookings)
你应该开始阅读一些基本的 R 手册...
CRAN提供了很多手册(请查看手册和贡献部分)。
无论如何:
setwd("path/to/csv/file")
myvalues <- read.csv("filename.csv")
hist(myvalues, 100) # Example: 100 breaks, but you can specify them at will
如果需要更多帮助,请查看这些函数的手册页面(可通过?read.table
、?read.csv
和?hist
访问)。
sapply(myvalues[1,],class)
dput(myvalues)
的输出粘贴到您的问题上方。 - Paul Hiemstrahist(myvalues[,1])
这样的东西。 - con