我對R相當陌生,但是我已經處理了比我目前的問題更大的挑戰,這使得它特別令人沮喪。我搜索了論壇並找到了一些相關的主題,但沒有人會爲這種情況做伎倆。將分類手段轉移到新表
我有一個數據集14個的變量184點意見:
> head(diving)
tagID ddmmyy Hour.GMT. Hour.Local. X0 X3 X10 X20 X50 X100 X150 X200 X300 X400
1 122097 250912 0 9 0.0 0.0 0.3 12.0 15.3 59.6 12.8 0.0 0 0
2 122097 260912 0 9 0.0 2.4 6.9 5.5 13.7 66.5 5.0 0.0 0 0
3 122097 260912 6 15 0.0 1.9 3.6 4.1 12.7 39.3 34.6 3.8 0 0
4 122097 260912 12 21 0.0 0.2 5.5 8.0 18.1 61.4 6.7 0.0 0 0
5 122097 280912 6 15 2.4 9.3 6.0 3.4 7.6 21.1 50.3 0.0 0 0
6 122097 290912 18 3 0.0 0.2 1.6 6.4 41.4 50.4 0.0 0.0 0 0
這是標記數據,以具有一個或多個6小時時間倉(未連續數據集由於傳輸中斷每個日期)。在每個6小時的垃圾箱中,動物潛入的深度按%分解爲10個垃圾箱。所以X0 =在0-3m之間花費的時間百分比,X3 =在3-10m之間花費的時間百分比等等。
我想要爲初學者做的是花平均時間花費在每個深度桶並繪製它。首先,我做了以下內容:
avg0<-mean(diving$X0)
avg3<-mean(diving$X3)
avg10<-mean(diving$X10)
avg20<-mean(diving$X20)
avg50<-mean(diving$X50)
avg100<-mean(diving$X100)
avg150<-mean(diving$X150)
avg200<-mean(diving$X200)
avg300<-mean(diving$X300)
avg400<-mean(diving$X400)
在這一點上,我不知道如何再繪製所產生的手段,所以我讓他們一個列表:
divingmeans<-list(avg0, avg3, avg10, avg20, avg50, avg100, avg150, avg200, avg300, avg400)
箱線圖(divingmeans)在X軸上提供1:10,在Y軸上提供%0-30。但是,我更喜歡直方圖,以及提供分類箱名稱的x軸(例如avg3或X3),而不僅僅是等級1:10。
HIST()和圖()提供以下信息:
> plot(divingmeans)
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' is a list, but does not have components 'x' and 'y'
> hist(divingmeans)
Error in hist.default(divingmeans) : 'x' must be numeric
我也試過:
> df<-as.data.frame(divingmeans)
> df
X3.33097826086957 X3.29945652173913 X8.85760869565217 X17.6461956521739 X30.2614130434783
1 3.330978 3.299457 8.857609 17.6462 30.26141
X29.3565217391304 X6.44510869565217 X0.664130434782609 X0.135869565217391 X0.0016304347826087
1 29.35652 6.445109 0.6641304 0.1358696 0.001630435
和
> df <- data.frame(matrix(unlist(divingmeans), nrow=10, byrow=T))
> df
matrix.unlist.divingmeans...nrow...10..byrow...T.
1 3.330978261
2 3.299456522
3 8.857608696
4 17.646195652
5 30.261413043
6 29.356521739
7 6.445108696
8 0.664130435
9 0.135869565
10 0.001630435
均未提供的那種表我正在尋找。
我知道必須有一個真正的基本解決方案將其轉換成適當的表格,但我無法弄清楚我的生活。我希望能夠製作一個基本的直方圖,平均顯示每個潛水箱花費的時間百分比。看起來,用於此目的的數據的最佳格式是具有兩列的表格:col1 = bin(類別;例如avg50)和col2 =%(數字;平均%時間花費在該類別中)。
您還會注意到數據被分解爲不同的時間段;最終我希望能夠按照一天中的時間分隔數據,以查看例如平均潛水深度是否在白天/夜晚之間轉換等等。我認爲,一旦我有了這個最初的代碼,我可以通過選擇,例如X0[which(Hour.GMT.=="6")]
,按時間進行。有關這方面的提示也將非常受歡迎。
感謝您的建議,夥計們!這似乎是以一種非常直接的方式來實現的。然後,我可以很容易地通過[which()]命令在每日時間段內將其分解。非常感激! – stewart6