如何在Stata中按组将连续观察合并在一起?
我有一个医生和病人之间访谈的数据集。有一个可变的数字;扬声器,指示医生(MD)或患者(P)是否在讲话;包含演讲者所说内容的Speech和按时间顺序对数据集排序的Row如何在Stata中按组将连续观察合并在一起?,stata,Stata,我有一个医生和病人之间访谈的数据集。有一个可变的数字;扬声器,指示医生(MD)或患者(P)是否在讲话;包含演讲者所说内容的Speech和按时间顺序对数据集排序的Row Row QuestionNumber Speaker Speech 1 1 MD Permission to record? 2 1 P Yes 3 1
Row QuestionNumber Speaker Speech
1 1 MD Permission to record?
2 1 P Yes
3 1 MD Great
4 2 MD I'd like to ask you-
5 2 MD What was that?
6 2 P Excuse me (blows nose)
对于每个问题编号,我希望每个其他观察(行)都是同一个发言者。但是,正如您在问题(2)中看到的,MD连续发言(第4行和第5行)。我想把这些观察中的演讲结合起来,也就是说,当同一个演讲者在同一个问题编号内连续发言时,将文本结合起来
我希望最终的数据集如下所示:
Row QuestionNumber Speaker SpeechNEW
1 1 MD Permission to record?
2 1 P Yes
3 1 MD Great
4 2 MD I'd like to ask you- What was that?
5 2 P Excuse me (blows nose)
我似乎无法在网上找到现有的解决方案。任何建议都将不胜感激——谢谢 这非常有效——谢谢!我不理解的代码的一部分是
sum(Speaker!=Speaker[\u n-1])
。这是如何工作的-sum
在这里做什么?这是一个程序员论坛-,您似乎没有阅读相关程序的文档。这不是一个好策略help sum()
告诉您sum()
的作用,即生成累积或运行的总和。每次演讲者发生变化时,到目前为止,您在总和上加1。这包括第一次观察,因为扬声器[0]
被评估为缺失,因此与扬声器[1]
不同。第4节将进一步讨论基本相同的问题。否则,true或false语句在true时的值为1,在false时的值为0sum()
将1和0相加,自然,1增加了总和,0没有区别。更多关于true和false的信息,请访问,感谢您的澄清和其他资源。我不是一个程序员,但我真的在努力学习,并不总是知道在网上哪里可以找到相关信息。我不知道你能把sum
与真假陈述配对——再次感谢。
clear
input Row QuestionNumber str2 Speaker str42 Speech
1 1 MD "Permission to record?"
2 1 P "Yes"
3 1 MD "Great"
4 2 MD "I'd like to ask you-"
5 2 MD "What was that?"
6 2 P "Excuse me (blows nose)"
end
bysort Question (Row) : generate Comment = sum(Speaker != Speaker[_n-1])
bysort Question Comment (Row) : replace Speech = Speech[_n-1] + " " + Speech if _n > 1
by Question Comment : keep if _n == _N
list, sepby(Question)
+--------------------------------------------------------------------------+
| Row Questi~r Speaker Speech Comment |
|--------------------------------------------------------------------------|
1. | 1 1 MD Permission to record? 1 |
2. | 2 1 P Yes 2 |
3. | 3 1 MD Great 3 |
|--------------------------------------------------------------------------|
4. | 5 2 MD I'd like to ask you- What was that? 1 |
5. | 6 2 P Excuse me (blows nose) 2 |
+--------------------------------------------------------------------------+