簡體   English   中英

滾動平均值 function 類似於動物園中的 pandas

[英]Rolling mean function similar to pandas in zoo

我想創建一些地球化學數據的滾動平均值。 目前,我有從 0 毫米到 45.7 毫米的每 1 毫米的數據,我想平均每 10 毫米以創建 1 厘米的平均值。

這是目前的數據,但它仍然沒有給我 1 厘米的平均值。 有人可以告訴我哪里出錯了嗎? 謝謝


wapPbTa<-read.csv("wappbta.csv",header=TRUE)

wapPbTa<-wapPbTa[-c(251:458), ] 

library(ggplot2)
library(tidypaleo)
library(zoo)
width <- 10

RM<-rollmean(x = wapPbTa$PbTa, k = width,fill=NA)

##Averaged data

ggplot(wapPbTa, aes(x =RM , y = Depth))+
  labs(y = "Depth (cm)")+
  geom_lineh(size=1)+
  geom_point(size=2)+
  theme_classic()+
  scale_y_reverse()

## Unaveraged data
ggplot(wapPbTa, aes(x =PbTa , y = Depth))+
  labs(y = "Depth (cm)")+
  geom_lineh(size=1)+
  geom_point(size=2)+
  theme_classic()+
  scale_y_reverse()

structure(list(Depth = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 
0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9), PbTa = c(0.163857678, 
0.161569533, 0.086305592, 0, 0.006086142, 0, 0, 0.044096031, 
0.050739958, 0.088385995, 0.104100946, 0.133012821, 0, 0.127524872, 
0.046368715, 0.02514558, 0.109383676, 0.081979695, 0.0766503, 
0.064679583)), row.names = c(NA, 20L), class = "data.frame")

這類問題通常與重塑數據有關。 格式應為長格式,數據為寬格式。 請參閱這篇文章,了解如何將數據從寬格式重塑為長格式。

library(ggplot2)
library(dplyr)
library(tidyr)
library(tidypaleo)
library(zoo)

width <- 10
wapPbTa$RM <- rollmeanr(x = wapPbTa$PbTa, k = width, fill = NA)

wapPbTa %>%
  pivot_longer(cols = -Depth) %>%
  ggplot(aes(x = value, y = Depth, colour = name)) +
  geom_lineh(size = 1) +
  geom_point(size = 2) +
  scale_y_reverse() +
  scale_colour_manual(
    breaks = c("PbTa", "RM"),
    values = c("black", "blue")
  ) +
  labs(y = "Depth (cm)") +
  theme_classic()

在此處輸入圖像描述

暫無
暫無

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

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