我有以下名字:
clear
input str25 names
"Trenton Mercer"
"Carissa Moyer"
"Timothy Delgado"
"Kaylynn Payne"
"Harry Patton"
"Charlie Dudley"
"Harry Schmitt"
"Wyatt Hammond"
"Kasen Delgado"
"Katherine Noble"
"Julius Jarvis"
"Harry Carney"
"Wyatt Holden"
"Megan Wilson"
"Priscilla Shaffer"
"Savanah Marshall"
"Harry Delgado"
"Harper Ballard"
"Harry Mcmahon"
"Alejandro Jarvis"
end
如何识别多个姓氏和名字(分别)?
我也想数一下这些出现的次数。
答案 0 :(得分:2)
执行此操作的一种方法如下:
docker-compose up
答案 1 :(得分:2)
Pearly的解决方案(将split
作为该问题的最佳选择)似乎是合理的。但是仍然存在一些不必要的轮廓。例如,似乎并不需要生成标签,b1,b2变量。
更重要的是,最终输出不是完全一致的,计数信息与看似随机的顺序一致,这也与没有明确解释的原始计数有所不同。
因此,我尝试提供一种解决方案(该解决方案也必须具有缺陷),以作为一种避免这些问题的方式,同时仍提供您要查找的输出。
split names
foreach v in `r(varlist)' {
egen TotalAppear_`v' = total(`v' != ""), by(`v')
egen LastAppear_`v' = max(_n), by(`v')
replace LastAppear_`v' = LastAppear_`v'==_n
list `v' TotalAppear_`v' if LastAppear_`v' == 1 & TotalAppear_`v' >1
}
应该注意,您的描述导致了我的代码以及Pearly解决方案中的假设:
每个名字只有两个部分,即名字和姓氏,所以不包括任何中间名。
您只想在每个组中进行比较(名字中的每个名字,姓氏中的姓氏),而不要将任何一个与另一个组中的名字进行比较。