首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Stata数据清理

Stata数据清理
EN

Stack Overflow用户
提问于 2021-06-30 19:57:22
回答 1查看 69关注 0票数 0

我需要一些Stata数据转换的帮助。

我有一个调查,其中用户可以回答“无响应”,这已编码为整数98。变量可以是不同的数据类型。我需要将用户“无响应”/98的数量放入一个单独的变量中。

我附上了数据集示例:

代码语言:javascript
运行
复制
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中有没有等价物?

Sample Data

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-30 21:36:25

感谢数据示例,下面将其改进为可重现的代码。另请参阅Stata中的help dataex (或古老Stata中的search dataex )。

代码语言:javascript
运行
复制
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进行计数,可以使用一个循环

代码语言:javascript
运行
复制
ds Q*, has(type string) 
gen WANTED = 0 
quietly foreach v in `r(varlist)' { 
    replace WANTED = WANTED + (`v' == "foo")  
} 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68194292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档