无法在R中生成分布图和/或直方图。

时间:2016-04-14 18:15:26

标签: r

我已经搜索过高低,应该是一个非常简单的答案。简而言之,在尝试在R中生成分布图时,我一直收到错误' x'必须是数字。我试图孤立这个问题并相信我找到了它,但不知道它为什么会出现。我甚至从我的初始数据集(相对复杂,200,000个值都在0和1之间)移动到一个非常简单的通用数据集仍然返回相同的问题。我会引导你完成我正在做的事情,你告诉我为什么我有点慢。

我加载了我的数据集(我相信这是一个数据框)

> test <- read.table("/Users/timjenkins/Desktop/Test5hmcR/test.txt", header = T)
> str(test)
'data.frame':   200 obs. of  4 variables:
$ AGE   : int  20 53 44 37 26 41 39 28 33 39 ...
$ HEIGHT: int  176 167 170 173 170 165 174 171 180 166 ...
$ WEIGHT: int  77 56 80 89 71 62 75 68 100 74 ...
$ CHOL  : int  195 250 304 178 206 284 232 152 209 150 ...

> head(test)
 AGE HEIGHT WEIGHT CHOL
1  20    176     77  195
2  53    167     56  250
3  44    170     80  304
4  37    173     89  178
5  26    170     71  206
6  41    165     62  284

然后我选择感兴趣的列向量

> weight <- test$weight

然后尝试生成直方图或密度图

> hist(weight)
Error in hist.default(weight) : 'x' must be numeric
> density(weight)
Error in density.default(weight) : argument 'x' must be numeric

在回顾列向量的摘要时,似乎我在这一步做错了但我无法弄清楚......

> head(weight)
NULL
> str(weight)
NULL

我还试图强制将其作为数字&as;数字&#39; as.numeric&#39;但结果似乎有些混乱......

> w <- as.numeric(weight)
> str(w)
num(0) 
> head(w)
numeric(0)

有什么想法?我可能遗漏了一些非常基本的东西,但是我已经在R中制作了许多直方图并且直到今天才遇到这个问题,现在无论我使用什么数据集,它都会出现,这告诉我我做的事情非常错误(但是至少我是一致的)。提前谢谢。

1 个答案:

答案 0 :(得分:2)

在R中,案件很重要。重量!=重量

尝试

weight <- test$WEIGHT