String 在Stata中列出非缺失字符串变量

String 在Stata中列出非缺失字符串变量,string,stata,String,Stata,我只想在Stata中显示(list)字符串变量DE15\u WHY的值,前提是该变量没有丢失(例如,某些主题没有提供注释)。我想这很容易: list DE15_WHY if DE15_WHY != "" 这将显示所有受试者的DE15_为什么,即使他们在DE15_为什么中没有任何内容 字符串的格式是否错误?例如,Stata是否认为所有受试者对DE15\u为什么都有有效的观察?我该如何解决这个问题?我检查了,它被格式化为一个字符串变量 Stata还允许我将DE15_WHY制成表格,类似于R。这是一

我只想在Stata中显示(
list
)字符串变量
DE15\u WHY
的值,前提是该变量没有丢失(例如,某些主题没有提供注释)。我想这很容易:

list DE15_WHY if DE15_WHY != ""
这将显示所有受试者的
DE15_为什么
,即使他们在
DE15_为什么
中没有任何内容

字符串的格式是否错误?例如,Stata是否认为所有受试者对
DE15\u为什么
都有有效的观察?我该如何解决这个问题?我检查了,它被格式化为一个字符串变量

Stata还允许我将DE15_WHY
制成表格,类似于R。这是一个很好的选项,但不会在表格中显示字符串变量的全部内容。如何让Stata显示整个字符串

sysuse auto
list  rep78 in 1/10 if  rep78 !=. # for non-missing 
tab  rep78  # default behaviour is to report only non-missing
tab rep78, missing # if you want also missing
如果变量是由

list yourvariable if yourvariable !="."
If变量是一个字符串,缺失由空白表示

list yourvariable if yourvariable !=""
例如:

my  my1
ab  1
cd  2
    3
ef  4

list  my if  my !=""

     +----+
     | my |
     |----|
  1. | ab |
  2. | cd |
  4. | ef |
     +----+
选项卡
将同时处理空白和空白。就像失踪一样

如果变量是由

list yourvariable if yourvariable !="."
If变量是一个字符串,缺失由空白表示

list yourvariable if yourvariable !=""
例如:

my  my1
ab  1
cd  2
    3
ef  4

list  my if  my !=""

     +----+
     | my |
     |----|
  1. | ab |
  2. | cd |
  4. | ef |
     +----+
选项卡
将同时处理空白和空白。就像失踪一样


@Metrics的答案有几个很好的细节,但我会在这里补充更多

对于字符串变量,Stata只有一个missing定义,即字符串为空,不包含任何字符

一个或多个空间,尽管通常不会向人们传达任何信息,但就Stata而言,不符合缺失的条件

“空白”一词在这里可能不清楚,因此最好避免使用

如果空格以某种方式进入字符串变量,则

   if trim(mystring) == "" 
   if trim(mystring) != "" 
选择空值或具有空格的值以及相应的条件,例如

   if trim(mystring) == "" 
   if trim(mystring) != "" 
选择包含其他内容的值。为了用空字符串替换空格,我们这样做

   replace mystring = "" if trim(mystring) == "" 
一般来说,如果您有相当长的字符串,Stata必然会遇到在何处显示它们的问题。一个提示是,
列表
将显示多于
表格
。如果您想要一个
表格
列表
混合,请使用
SSC inst groups
从SSC检查


尽管句点
是Stata中数值变量(或数值标量或矩阵元素)的默认值或系统缺失值,但它不会对字符串
附加任何特殊含义

@Metrics的答案有几个很好的细节,但我会在这里补充更多

对于字符串变量,Stata只有一个missing定义,即字符串为空,不包含任何字符

一个或多个空间,尽管通常不会向人们传达任何信息,但就Stata而言,不符合缺失的条件

“空白”一词在这里可能不清楚,因此最好避免使用

如果空格以某种方式进入字符串变量,则

   if trim(mystring) == "" 
   if trim(mystring) != "" 
选择空值或具有空格的值以及相应的条件,例如

   if trim(mystring) == "" 
   if trim(mystring) != "" 
选择包含其他内容的值。为了用空字符串替换空格,我们这样做

   replace mystring = "" if trim(mystring) == "" 
一般来说,如果您有相当长的字符串,Stata必然会遇到在何处显示它们的问题。一个提示是,
列表
将显示多于
表格
。如果您想要一个
表格
列表
混合,请使用
SSC inst groups
从SSC检查


尽管句点
是Stata中数值变量(或数值标量或矩阵元素)的默认值或系统缺失值,但它不会对字符串
附加任何特殊含义

此外,条件
if trim(my)==“
将捕获字符串变量
my
中一个或多个空格的情况。对于字符串变量,缺失表示为空,反之亦然。>
选项卡
将空白和
视为缺失
我想补充一点:。。。当变量分别为字符串和数字时。这让我有点困惑,因为有一分钟我认为
可能代表字符串类型的缺失。不过,谢谢@Metrics!=”“还有“.”产生同样的结果。所有的主题都会显示出来,有空白的和有字符串值的,而不是你在例子中得到的整洁的输出。那么,如何让tab显示字符串的全部内容呢?它会被截断到某个长度?没问题。在这种情况下,您需要提供示例数据,以便我们可以测试我们的代码。优秀@NickCox-当您的代码用作:list DE15_WHY if trim(DE15_WHY)!=”“行!此外,条件
if trim(my)==“
将捕获字符串变量
my
中一个或多个空格的情况。对于字符串变量,缺失表示为空,反之亦然。>
选项卡
将空白和
视为缺失
我想补充一点:。。。当变量分别为字符串和数字时。这让我有点困惑,因为有一分钟我认为
可能代表字符串类型的缺失。不过,谢谢@Metrics!=”“还有“.”产生同样的结果。所有的主题都会显示出来,有空白的和有字符串值的,而不是你在例子中得到的整洁的输出。那么,如何让tab显示字符串的全部内容呢?它会被截断到某个长度?没问题。在这种情况下,您需要提供示例数据,以便我们可以测试我们的代码。优秀@NickCox-当您的代码用作:list DE15_WHY if trim(DE15_WHY)!=”“行!