我需要一些Stata数据转换的帮助。
我有一个调查,其中用户可以回答“无响应”,这已编码为整数98。变量可以是不同的数据类型。我需要将用户“无响应”/98的数量放入一个单独的变量中。
我附上了数据集示例:
UserN Q1 Q2 Q3 Q4 Q5 Q6 NewCreatedColumn
User1 11 "male" "12:55pm" 98 "Answer1" "other" 1
User2 98 "female" "1:00am" 98 "AnswerX" "Batman" 2
User3 16 "male" "1:00am" 34 "other" "superman" 0
User4 98 "female" "1:00am" 98 "other" "Dog" 2
User5 66 "male" "1:00am" 98 "Life" "Cat" 1
这在python中是相当简单的,因为dataframe中的每个用户都是一个列表,您可以扫描列表中的整数98。
Stata中有没有等价物?
发布于 2021-06-30 21:36:25
感谢数据示例,下面将其改进为可重现的代码。另请参阅Stata中的help dataex
(或古老Stata中的search dataex
)。
clear
input str5 UserN Q1 str7 (Q2 Q3) Q4 str8 (Q5 Q6) NewCreatedColumn
User1 11 "male" "12:55pm" 98 "Answer1" "other" 1
User2 98 "female" "1:00am" 98 "AnswerX" "Batman" 2
User3 16 "male" "1:00am" 34 "other" "superman" 0
User4 98 "female" "1:00am" 98 "other" "Dog" 2
User5 66 "male" "1:00am" 98 "Life" "Cat" 1
end
ds Q* , has(type numeric)
egen wanted = anycount(`r(varlist)'), values(98)
为了对字符串foo
进行计数,可以使用一个循环
ds Q*, has(type string)
gen WANTED = 0
quietly foreach v in `r(varlist)' {
replace WANTED = WANTED + (`v' == "foo")
}
https://stackoverflow.com/questions/68194292
复制相似问题