gpt4 book ai didi

stata - 处理折叠命令中的字符串变量

转载 作者:行者123 更新时间:2023-12-02 19:37:38 35 4
gpt4 key购买 nike

编辑:我应该生成更好的数据。字符串变量不一定能够destring。我只是在这里偷懒(我不知道如何生成随机字母)。

<小时/>

我有一个包含很多字符串的数据集,我想要折叠,但通常折叠似乎不能很好地与字符串一起放置,特别是(firstnm)(计数)。以下是一些类似的数据。

clear
set obs 9
generate mark = .
replace mark = 1 in 1
replace mark = 2 in 6
generate name = ""
generate random = ""
local i = 0
foreach first in Tom Dick Harry {
foreach last in Smith Jones Jackson {
local ++i
replace name = "`first' `last'" in `i'
replace random = string(runiform())
}
}

我想在“mark”上折叠,使用替换和下标就足够简单了。

replace mark = mark[_n - 1] if missing(mark)

但是我的崩溃类型不匹配错误而失败。

collapse (firstnm) name (count) random, by(mark)

如果我使用 (first),则第一个错误会清除,但 (count) 仍然失败。是否有解决方案可以避免额外的 by 操作?

看起来以下方法有效,但对于我的数据来说也会花费更多时间。

generate nonmissing_random = !missing(random)
egen nonmissing_random_count = count(nonmissing_random), by(mark)
collapse (first) name nonmissing_random_count, by(mark)

或者是否有任何有助于使用collapse的解决方案相同?

最佳答案

您可以使用destring random,replace然后进行以下工作:

collapse (first) name (count) random, by(mark) 

mark name random
1 Tom Smith 5
2 Dick Jackson 4

但是collapse (firstnm) name (count) random, by(mark)仍然会产生不匹配错误。

关于stata - 处理折叠命令中的字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19032986/

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