2014-04-28 55 views
0

我試圖生成一個barplot,顯示x軸上的四個外科醫生中的每一個以及每個人的手術持續時間在y軸上的總和,幫助是非常感激。 「醫生」是字符類型和「持續時間」是「倍」類型從chron的包。r barplot顯示每個x的y的值的總和

樣本數據:

Surgeon Duration 
Jack 00:22:00 
Ben  00:34:00 
Charles 03:12:00 
Hank 01:15:00 
Jack 00:59:00 
Ben  00:44:00 
Hank 01:46:00 
Hank 00:32:00 
Ben  00:49:00 
Ben  06:19:00 
Charles 07:02:00 
Jack 00:58:00 
Jack 00:21:00 
+2

你嘗試過什麼?在這個網站上,R必須有一千個「聚合」和「總計」組問題。 'barplot()',最終是策劃你的終點,我希望你已經猜到了。嘗試是這樣的:'barplot(帶(DAT,tapply(持續時間,外科醫生,和)))'對於初學者 – thelatemail

回答

1

假設你有一個名爲Input.txt它包含在你的問題中的數據輸入文件,這將讓你非常接近。爲了您的參考,你應該看看documentation學習如何得到的東西出來chron對象。

# Aggregation 
library(chron) 
data = read.table("Input.txt", header=T, as.is =c(T,T)) 
data$Duration = chron(times=data$Duration) 
processed = aggregate(Duration ~ Surgeon, data, sum) 
print(processed) 

# This will do total seconds, but you can change it to whatever you want to plot. 
total_seconds = hours(processed$Duration) * 3600 + minutes(processed$Duration) * 60 + seconds(processed$Duration) 
barplot(total_seconds, names.arg=processed$Surgeon) 
+0

爲什麼做單獨的每個組件乘法?不僅僅是把日子放在一起好嗎?即 - '用(DAT,tapply(持續時間,外科醫生,和))* 86400' – thelatemail

+0

@thelatemail,我沒有測試過這一點,但我寫在最可讀的方式我首先想到的。 :) – merlin2011