R 寻找一种有效的方法来比较具有多个自变量的时间序列数据中的点和区域

R 寻找一种有效的方法来比较具有多个自变量的时间序列数据中的点和区域,r,function,time-series,workflow,average,R,Function,Time Series,Workflow,Average,如果您知道在回答这个问题时有用的示例数据集,欢迎使用。 假设我有一个结构如下的数据帧: >数据 ID位置性别时间铜铁碳镁铅碳酸钙 上午12点1分… 上午12点,下午2点… 上午12点3分… 上午12点4分… 上午12点5分… 上午12点6分… 234上午1点… 234平方米… 234米3… 234上午4点… 234上午5点… 有几百个人,每个人都有一个唯一的ID号。每秒钟测量一次每个元素或物质(铜、铁、碳、镁、铅、碳酸钙)的浓度,测量时间为每个人所独有。因此,在实际数据中,每个人有几百次测量。

如果您知道在回答这个问题时有用的示例数据集,欢迎使用。 假设我有一个结构如下的数据帧:

>数据
ID位置性别时间铜铁碳镁铅碳酸钙
上午12点1分…
上午12点,下午2点…
上午12点3分…
上午12点4分…
上午12点5分…
上午12点6分…
234上午1点…
234平方米…
234米3…
234上午4点…
234上午5点…
有几百个人,每个人都有一个唯一的ID号。每秒钟测量一次每个元素或物质(铜、铁、碳、镁、铅、碳酸钙)的浓度,测量时间为每个人所独有。因此,在实际数据中,每个人有几百次测量。例如,在上面的例子中,12个人只有6次观察,234个人只有5次观察。实际上,个体12可能有980次观察,个体234可能有1249次观察

由于这些测量的性质,每种物质的浓度在每个个体的开始和结束时应相同(或非常相似)。例如,如果12个人有980次观察,则前几次观察(时间1:n)中铜的浓度应与最后几次观察(n:980)中铜的浓度相似,这适用于所有物质。为了验证这一假设,并了解物质在序列两端保持相似的时间(或多少数据点),我想在第一次观察和前5次观察、第一次观察和最后一次观察的平均值之间进行配对t检验,前5次观测的平均值和后5次观测的平均值,以及前7次和后7次和10次观测的平均值,等等

解决这个问题的最好办法是什么?我就是这样开始的:

首先将每个关注点的值(第一个点、前7个点的平均值等)保存在单独的数据帧中:

#第一个点的示例以及前7个点的平均值:
#获取每个个体的第一个数据点:
第一部分%
分组依据(ID)%>%
切片(1)
第一部分%
枢轴长度(铜:碳酸钙,名称至=“变量”)
第一部分%
分组依据(ID、位置、性别、变量)%>%
顶部(7,描述(时间))%>%
汇总(平均值=平均值)
First7平均$Average%
总结(ttest=t.test(第一次测试,最后一次测试,配对=t)$p.value)
第一个7AVGVSLAST7AVG%
分组依据(ID)%>%
总结(ttest=t.test(第一个7avg,最后一个7avg,成对=t)$p.value)
每次比较我都重复这个。我意识到这一部分是另一个论坛的讨论,但为了我想回答的问题的透明度,我会解释;接下来,我没有比较每个个体内所有6种物质的观察结果,而是使用了
位置
作为分组变量(个体可以分组到多个
位置
),并在单个物质内进行了相同的比较(第一个点与前7个点的平均值等):

#示例比较了第一个点和最后一个点的镁浓度
Mg_FirstPtvsLastPt%
过滤器(变量==“Mg”)%>%
选择(c(位置、第一个点、最后一个点))
Mg_FirstPtvsLastPt%>%
分组依据(位置)%>%
总结(ttest=t.test(第一次测试,最后一次测试,配对=t)$p.value)
在这一点上,我做了大量的复制和粘贴,并创建了大量的新对象,每个对象都有相似的名称。我开始担心与这种重复性工作流程相关的人为错误,但我不知道更好的方法。最后,我将把所有的p值合并到一个单独的数据框中,该数据框紧挨着与它们相关联的测试(或比较)。什么是更有效、更快的方法?是否可以使用原始数据集来完成,这样我就不必创建这么多新对象?可能是用户编写的函数