【发布时间】:2021-09-23 21:11:18
【问题描述】:
我希望得到群体智能的帮助! 在准备跨不同时间点的实验室值的数据框时,我遇到了以下问题。 我的数据框是由 5 个变量组成的长格式:受试者 ID (sid)、时间点 (zeitpunkt)、临床试验的干预组 (gruppe)、实验室参数 (parameter)、参数的实际值 (messwert) 和值的单位(einheit)。
A tibble: 6 x 6
sid zeitpunkt gruppe parameter messwert einheit
<dbl> <chr> <chr> <chr> <dbl> <chr>
1 1 t0 DGE ACPA(citrull. Prot.-Ak) EIA/Se 1000 U/ml
2 1 t3 DGE ACPA(citrull. Prot.-Ak) EIA/Se 1000 U/ml
3 1 t2 DGE Apolipoprot. A1 HP 1.31 g/l
4 1 t2 DGE Apolipoprotein B 0.61 g/l
5 1 t0 DGE aPTT Pathromtin SL 34.3 sek.
6 1 t1 DGE aPTT Pathromtin SL 37.3 sek.
>
我现在想比较每个人从基线 (t0) 到最后一个时间点 (t3) 的每个参数值的百分比变化,以便我可以从角度比较两种干预措施的平均值。有问题的:有些值缺失,有些可能存在两次,但在实验室测量两次或样品缺失的情况下略有不同。此外,某些参数仅在基线时进行评估。
我试图通过将这个新变量汇总为一个新变量来计算百分比变化
dataframe: labor_change <-
labor_long %>%
group_by(sid, gruppe, parameter, zeitpunkt) %>%
arrange(sid, parameter, zeitpunkt)%>%
summarize(messwert=mean(messwert))%>%
ungroup()%>%
group_by(sid, gruppe, parameter) %>%
summarize(changet3t0 =
(messwert[zeitpunkt == "t3"]-messwert[zeitpunkt = "t0"]/messwert[zeitpunkt == "t0"])*100)
我现在的问题:一旦我在代码中使用来自两个不同时间点(也就是 2 个不同的行,在第二个变量“时间点”中不同)的值,R 就会返回我所需的数据帧,但只填充 NA:
# Groups: sid, gruppe, parameter [6]
sid gruppe parameter changet3t0
<dbl> <chr> <chr> <dbl>
1 1 DGE aPTT Pathromtin SL NA
2 1 DGE Basophile % NA
3 1 DGE Basophile absolut NA
4 1 DGE Calcium NA
5 1 DGE Creatinkinase (CK) HP NA
6 1 DGE CRP HP NA
>
只要我从计算中消除一个时间点,R 就会给我所需的计算值。知道如何解决这个问题吗?
【问题讨论】:
-
如果没有
t3怎么办?使用t2或t[max_value]? -
(messwert[zeitpunkt == "t3"]-messwert[zeitpunkt = "t0"]/messwert[zeitpunkt == "t0"])应该是(messwert[zeitpunkt == "t3"]-messwert[zeitpunkt == "t0"])/messwert[zeitpunkt == "t0"]:缺少一个=,您必须将)放在不同的位置。您的代码(或多或少)相当于messwert[zeitpunkt == "t3"] - 1。 -
如果没有 t3 它应该只返回 NA。非常感谢您的帮助,我认为我的问题是错字!
-
Viel Erfolg noch!
标签: r dplyr na calculated-columns summarize