2015-12-28 53 views
2

我试图创建一个条形图,其中只包含我的感兴趣的结果和大量预测变量之间找到的前5个相关性。R barplot:使用名称中的一个子集名称.arg

我试了一下,只有20来得到正确的逻辑。

我有一个1乘20的数字向量,其中包含cor()函数产生的相关系数。有正面和负面的价值。该向量具有与预测变量的名称相对应的列名称。这是我开始与结构:

set.seed(10) 
mydata <- runif(20,-.5,.5) 
mydata <- t(mydata) 
colnames(mydata) <- letters[1:20] 

5个最强相关性的“T”,“Q”,“M”,“e”和“F”,其中“t”为正,而另一4是负面的。我通过订购平方值来生成5个最强关联的条形图。

barplot(mydata[order(-mydata^2)][1:5], horiz=TRUE,names.arg=HELP, xlim= c(-1,1), las=1) 

为5条的值看起来是正确的,但我一直没能得到标签正确显示。我已经尝试了各种各样的东西names.arg =帮助没有运气。我试过

names.args = colnames(mydata) 
names.args = colnames(mydata[order(-mydata^2)] 
names.args = colnames(mydata[order(-mydata^2)[1:5]]) 
names.args = colnames(order(-mydata^2)[1:5]) 

我只想要一个带有正确5个标签的条形图。

我需要在13,000+个预测变量和30个以上的结果上重复这个过程,一旦找出它,越简单越好。

+0

使用相同的逻辑:'barplot(MYDATA [顺序(-mydata^2)] [1:5],HORIZ = TRUE,names.arg = colnames(MYDATA) (-mydata^2)] [1:5],xlim = c(-1,1),las = 1)' – fishtank

+0

很好用。感谢fishtank。只有一个括号不合适! – andrea

+0

@fishtank,请添加您的评论作为这个问题的答案。 –

回答

1

这工作:

barplot(mydata[order(-mydata^2)][1:5], horiz=TRUE, 
     names.arg=colnames(mydata)[order(-mydata^2)][1:5], xlim= c(-1,1), las=1)