2013-04-20 51 views
0

该R代码:向量未被设置正确

avector <- as.vector(top.links.added.overall$Amount) 
x <- as.vector(top.links.added.overall[order(avector),]) 
x$Amount <- factor(x$Amount) 
x$color[x$Amount == 100] <- "red" 
x$color[x$Amount == 500] <- "blue" 
x$color[x$Amount == 1000] <- "darkgreen" 
dotchart(x$Amount, 
     labels = row.names(x), 
     cex=.7, 
     groups = x$Amount, 
     gcolor = "black", 
     color = x$color, 
     pch=19, 
     main = "Gas Mileage for Car Models\ngrouped by cylinder", 
     xlab = "Miles Per Gallon") 

返回此错误:

Error in dotchart(x$Amount, labels = row.names(x), cex = 0.7, groups = x$Amount, : 
    'x' must be a numeric vector or matrix 

这是top.links.added.overall数据文件:

Amount,Name 
1000,Google 
500,Cnn 
100,Yahoo 

'x'是一个矢量,那么是什么导致了这个错误呢?

+2

'x'是你称为'x $金额< - 因子(x $金额)'的一个因素,但应该是数字向量 – DrDom 2013-04-20 18:13:39

+0

@DDDom是的工作,将你的评论放入一个答案? – 2013-04-20 18:17:46

回答

2

删除转换因子x$Amount <- factor(x$Amount) 并作出小的变化在

dotchart(x$Amount, 
    labels = row.names(x), 
    cex=.7, 
    groups = factor(x$Amount), 
    gcolor = "black", 
    color = x$color, 
    pch=19, 
    main = "Gas Mileage for Car Models\ngrouped by cylinder", 
    xlab = "Miles Per Gallon") 

也许这将帮助你。

+0

你为什么使用'factor(x $ Amount)'而不是x $ Amount? – 2013-04-20 18:28:03

+0

从帮助页面:“groups” - 一个可选因子,指示x的元素如何分组。如果x是矩阵,则组将默认为x的列。所以它应该是一个因素,我做了明确的转换因子,但可能'dotchart'可以自动完成。 – DrDom 2013-04-20 18:33:35

+0

好的,谢谢澄清,结果标签是不同的,当我省略它 – 2013-04-20 18:34:22