gpt4 book ai didi

stata - 以长格式查找与记录子集的最大值关联的字符串值

转载 作者:行者123 更新时间:2023-12-04 07:25:51 25 4
gpt4 key购买 nike

对于使用长格式数据的非纵向分析,当受试者有多次访问或记录时,我通常会使用 bysort ID 在每个受试者中寻找一条记录。 ,并设置一个临时变量来保存我找到的整数或实数值,然后 egen max()找到找到的所有记录的最大值,然后在记录 _n==1 for that subject 中设置最终值.这样我就可以将我想要的不同访问的值渗透到每个主题的单个记录中。然后将在分析期间使用每个受试者的每条记录(但不是纵向,可能是横截面或回归,方差分析等)
假设我想要试验的第 3 年的最高胆固醇 ( ldl ) 值,其中 ldl对所有科目每季度(每 3 个月)测量一次,可以使用以下代码完成:

cap drop ldl3tmp
cap drop ldl3max
cap drop ldl3
bysort id (visitdate): gen ldl3tmp = ldl if trialyear==3
bysort id (visitdate): egen ldl3max = max(ldl3tmp)
bysort id (visitdate): gen ldl3 = ldl3max if _n==1
假设有抽血的实验室技术员或抽血医师的姓名首字母缩写。如何过滤字符串值以记录与最大 ldl 相关联的 _n==1|试验第 3 年的记录子集中的值?字符串值无法排序,所以我猜答案可能是消除 ldl 的记录。不是第 3 年的最大值,那么该字符串将在该记录中?
在这种情况下,我如何找出最大值的 _n 是多少?如果我知道,我可以使用
bysort id (visitdate): drop if _n!=6 //if _n==6 has the max value of ldl 

最佳答案

以下是如何找到与最大 ldl 相关联的记录号4个季度内的值(value)ldl试验第 3 年的值。结果是一个名为 recmax 的变量, 只会为找到最大值的特定记录填写(在每个主题的所有记录中)。

cap drop tmpldl3
cap drop maxldl3
cap drop recmax
cap drop visitdate
gen long visitdate = date(dateofvisit, "MDY") //You have to convert date ("MM/DD/YYYY") to a long integer format - based on #days since Jan 1, 1960
bysort id (visitdate): gen tmpldl3 = ldl if trialyear ==3
bysort id (visitdate): egen maxldl3 = max(tmpldl3)
bysort id (visitdate): gen recmax = _n if tmpldl3==maxldl3 & tmpldl3!=. & maxldl3!=.
然后,您可以通过指定 if recmax!=. 横断面(方差分析、相关性、回归)分析该记录中的所有其他数据(例如字符串数据)。在任何分析命令的尾随 if 语句中。细心的话还可以 drop所有其他带有无关的记录 ldl使用命令 drop if recmax!=. 不感兴趣的值如果您意识到您删除了数据,并且如果您保存,请保存为包含“_reduced”或“_dropped”的文件名。

关于stata - 以长格式查找与记录子集的最大值关联的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68218409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com