簡體   English   中英

計算數據框中各列的百分之九十

[英]Calculate 90th percentile across columns in a data frame

我正在嘗試通過采樣日期在數據框中的各個列中計算所有站點糞便樣本的90%。 能夠將其添加為新列會很好,但並非絕對必要。

盡管我不知道這是否必要,但我以以下方式重新排列數據。 對我而言,以這種方式進行可視化很容易。

library(dplyr)
FecalData <- RawData %>%
select(Station, SampleDate, FecalColiform)

#Rearange by station
library(reshape2)
FecalbyStation <- dcast(FecalData, SampleDate ~ Station, fun.aggregate = mean, na.rm = TRUE)

這使我具有以下結構:

dput(FecalbyStation[1:5,])
structure(list(SampleDate = structure(c(6942, 6979, 7014, 7042, 
7070), class = "Date"), `114` = c(114.5, 2, 17, 7.9, 1.8), `115` = c(41, 
6.8, 33, 220, 4.5), `116` = c(64, 4, 14, 6.8, 1.8), `117` = c(33, 
2, 4.5, 1.8, 2), `118` = c(81.5, 2, 6.8, 33, 1.8), `119` = c(28, 
11, 4.5, 1.8, 2), `120` = c(64, 4.5, 11, 1.8, 1.8), `121` = c(31, 
4.5, 3.6, 13, 2), `122` = c(41, 2, 33, 13, 1.8), `123` = c(28, 
7.8, 2, 13, 1.8), `124` = c(NaN, 7.8, NaN, NaN, NaN), `125` = c(NaN, 
NaN, NaN, NaN, NaN), `126` = c(NaN, NaN, NaN, NaN, NaN), `127` = c(NaN, 
NaN, NaN, NaN, NaN), `128` = c(NaN, NaN, NaN, NaN, NaN), `129` = c(NaN, 
NaN, NaN, NaN, NaN), `614` = c(NaN, NaN, NaN, NaN, NaN), `615` = c(NaN, 
NaN, NaN, NaN, NaN), `639` = c(NaN, NaN, NaN, NaN, NaN), `758` = c(NaN, 
NaN, NaN, NaN, NaN)), .Names = c("SampleDate", "114", "115", 
"116", "117", "118", "119", "120", "121", "122", "123", "124", 
"125", "126", "127", "128", "129", "614", "615", "639", "758"
), row.names = c(NA, 5L), class = "data.frame")

我已經能夠以這種方式找到row.means(),並反復調整此代碼以嘗試獲得第90個百分位數。 在此過程中,我收到了幾個不同的錯誤。 這是我登陸的代碼:

library(psych)
Q90 <- sapply(FecalbyStation, -1, quantile, probs=c(.90), na.rm = TRUE)

這給了我以下錯誤:

Error in match.fun(FUN) : '-1' is not a function, character or symbol

最終,我想將所得的第90個百分位數設為一個時間序列,以便可以對其進行kendall或回歸分析,以調查該地區糞便水平的任何趨勢。 任何建議或意見,不勝感激。

謝謝!

您可以將數據保留為長格式,並按日期獲取第90個百分點,如下所示:

library(dplyr)

RawData %>% group_by(SampleDate) %>%
  summarise(p90 = quantile(FecalColiform, probs=0.9, na.rm=TRUE))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM