2017-01-23 12 views
0

私はRでbarchartを注文しようとしていますが、面白い結果が出ています。データソースはリストです。たぶんこれは問題ですが、私はそれをどのように並べ替えるのか分かりません。Rでbarchartをデータソースとして一覧表示する

次のように最初のチャートは次のとおりです。 BarChart1

私は次のコードでそれを得る:私はチャートをソートするために、次を追加した場合

file <- c("C://path//file.csv") 
dataSource <- read.table(file, header=T, sep=",") 
#typeof(dataSource) ==> this gives me a 'list' 
dataChart <- dataSource[ , c("Product","YTD")] 
dataChart <- na.omit(dataChart) 
barplot(dataChart[ ,2], names.arg = dataChart[ ,1], 
     horiz = TRUE, 
     ylab = "", 
     xlab = "", 
     main="Title", 
     las=1) 

dataChart <- as.data.frame(dataChart)[order("YTD"),] 

私は以下を入手してください:

次のように

データソースがある:

dataSource = structure(list(Product = structure(c(2L, 4L, 5L, 7L, 8L, 9L, 
10L, 13L, 1L, 3L, 4L, 6L, 11L, 12L, 13L), .Label = c("ADT", "BHL", 
"CEX", "CMX", "CTL", "HTH", "MTL", "SSL", "TLS", "UTV", "WEX", 
"WLD", "WMX"), class = "factor"), YTD = c(67L, 5026L, 503L, 29L, 
3975L, 876L, NA, 40L, 62L, 1395L, 717L, NA, 423L, 277L, 35L)), .Names = c("Product", 
"YTD"), class = "data.frame", row.names = c(NA, -15L)) 

チャートを取得する方法上の任意のアイデアは正しくソート?データがどのように読み込まれるかは問題ですか?

+0

構造(リスト(商品=構造(C(2L、4L、5L、7L、8L、9L、 10L、13L、1L、3L、4L、6L、11L、12L、 CMT、CTL、HTH、MTL、SSL、TLS、UTV、TTL、TLS、TLS、TLS、TLS、TLS、 「WEX」、 「WLD」、「WMX」)、class = "factor")、YTD = c(67L、5026L、503L、29L、 3975L、876L、NA、40L、62L、1395L、717L、 、277L、35L))、.Names = c( "Product"、 "YTD")、class = "data.frame"、row.names = c(NA、-15L)) – Selrac

答えて

1

データを並べ替えるだけでいいと思います。

dataChart = dataChart[order(dataChart$YTD),] 
barplot(dataChart[ ,2], names.arg = dataChart[ ,1], 
     horiz = TRUE, 
     ylab = "", 
     xlab = "", 
     main="Title", 
     las=1) 

sorted barplot

+0

素晴らしいです。ありがとうG5W – Selrac

関連する問題