2016-07-30 8 views
-2

重複する行(レコード)を持つcsvファイルがあります。重複する行を削除せずにそれらをプロットする必要があります。 これは私がそれをやろうとしている方法です。重複行を削除せずに重複行を含むcsvファイルを棒グラフでプロットする方法は?

df <- read.csv("C:/Users/EDDIE/Documents/R/ok1.csv",sep=',',header=T) 
df 
y <- t(df) 
y 
barplot(y, beside = TRUE, col = c("red", "blue"), main = "export data") 

これは既に失敗しました。ありがとう。

+1

値の「重複」は、同じ高さか、なぜ重複した名前がプロットされませんでしたの複数のバーを起こさない理由は不明です。それが「失敗した」と言っているのは基本的には何も役に立たない。データと特定の問題のより良い説明が必要です。 –

答えて

0

重複は保持したいが、それをプロットしないのはなぜか分かりませんが、最も簡単な方法は、重複データフレームを作成し、そこから複製を削除し、このデータフレームをプロットすることです。あなたが重複して元のデータが必要な場合はその方法は、それはまだ利用可能です:それは重複を維持しても意味がありません

y_copy <- unique(y) 
barplot(y_copy, beside = TRUE, col = c("red", "blue"), main = "export data") 
0

ので、私はunique()を使用して、データからすべての重複を削除したとしてループスルーでしたfor()ループを実行し、if else{}ステートメントを使用してデータを操作しました。 下記のコードを確認してください。

uni<-unique(Exports$YEAR) 
Exports$QUANTITY[is.na(Exports$QUANTITY)]<-0 
for (var in uni) { 
sum<-0 
tempVector<-grep(var,Exports$YEAR) 
for(i in tempVector){ 

sum<-sum + as.numeric(Exports$QUANTITY[i]) 
} 
Qty<-paste("Total Qty for: ",var) 
print(Qty) 
if(var=="2011"){ 
m<-round(sum/100000000,digits = 2) 
q1<-m 
} 
else if(var=="2012"){ 
m<-round(sum/100000000,digits = 2) 
q2<-m 
} 
else if(var=="2013"){ 
m<-round(sum/100000000,digits = 2) 
q3<-m 
} 
else if(var=="2014"){ 
m<-round(sum/100000000,digits = 2) 
q4<-m 
} 
else if(var=="2015"){ 
m<-round(sum/100000000,digits = 2) 
q5<-m 
} 
} 
TotalQty<-c(q1,q2,q3,q4,q5) 
names(TotalQty)=c("2011","2012","2013","2014","2015") 
barplot(TotalQty,col ="blue" ,xlab = "Year", ylab = "Quantity", 
main = "Bar chart showing total quantities for each year") 
関連する問題