stata中sum books gen books_mean=r(mean) gen boos_min=r(min)
时间: 2024-10-05 12:03:55 浏览: 7
在Stata中,`sum`命令通常用于计算变量的统计摘要信息,如总和、平均值、最小值和最大值等。当你想要对名为"books"的变量求其平均数和最小值,并将结果分别存储到新的生成量表(generated variables)"books_mean"和"boos_min"中,你可以使用以下语法:
```stata
* 计算books的均值并存储到books_mean
egen books_mean = mean(books)
* 计算books的最小值并存储到boos_min
egen boos_min = min(books)
```
这里`egen`是generate estimates的缩写,它是在数据集中创建新变量的快捷方式。`mean`和`min`都是内置的estimation functions,分别用于计算均值和最小值。
如果你已经有数据集并且想一次性完成这两个操作,可以用`generate`命令一行搞定:
```stata
* 同时生成books_mean和boos_min
generate books_mean = mean(books)
generate boos_min = min(books)
```
相关问题
set obs 2 gen x = "广东省广州市" replace x= "广东省深圳市" gen prov_pos1 = strpos(x,"省") gen prov_pos2 = ustrpos(x,"省")这些语句是什么意思?
这些语句是Stata语言的命令,用于对数据进行操作和处理。具体解释如下:
1. `set obs 2`: 设置数据集有两个观测值(行),也就是创建了一个只有两行的数据集。
2. `gen x = "广东省广州市" replace x= "广东省深圳市"`: 创建一个名为“x”的变量,并为其赋值“广东省广州市”,然后将“广东省深圳市”替换为“x”的值。也就是说,“x”变量现在的值为“广东省深圳市”。
3. `gen prov_pos1 = strpos(x,"省")`: 创建一个名为“prov_pos1”的变量,并为其赋值“x”中第一个出现“省”字的位置(索引)。如果“x”中没有“省”字,则该变量的值为0。
4. `gen prov_pos2 = ustrpos(x,"省")`: 创建一个名为“prov_pos2”的变量,并为其赋值“x”中最后一个出现“省”字的位置(索引)。如果“x”中没有“省”字,则该变量的值为0。
总之,这些命令的目的是在Stata中创建一个只有两行的数据集,并且创建两个变量。其中,变量“x”代表城市名称,“prov_pos1”和“prov_pos2”分别代表“省”字在“x”中的位置。
gen proportion_winsor = proportion (30,472 missing values generated)对应的并非缺失值
如果 `(30,472 missing values generated)` 并非对应缺失值,那么可能是因为变量 `proportion` 中存在非数值型数据或非法的数值数据。这些数据会被 Stata 识别为缺失值,从而导致在生成新变量时出现缺失值。
为了解决这个问题,您可以尝试使用 `destring` 命令将变量 `proportion` 转换为数值类型。以下是修改后的代码示例:
```
* 将变量proportion转换为数值类型
destring proportion, replace
* 生成新变量proportion_winsor,用于存储Winsor化后的值
gen proportion_winsor = proportion if !missing(proportion)
* 计算变量proportion_winsor的1%和99%分位数
pctile proportion_winsor, p(1 99)
* 将proportion_winsor中小于1%分位数的值替换为1%分位数的值
replace proportion_winsor = r(p1) if proportion_winsor < r(p1)
* 将proportion_winsor中大于99%分位数的值替换为99%分位数的值
replace proportion_winsor = r(p99) if proportion_winsor > r(p99)
* 生成新变量newvarname
gen newvarname = proportion_winsor
```
上述代码中,使用 `destring` 命令将变量 `proportion` 转换为数值类型。然后,使用 `if` 语句来排除变量 `proportion` 中的缺失值。接着,使用 `pctile` 命令计算变量 `proportion_winsor` 的1%和99%分位数,使用 `replace` 命令将小于1%分位数的值替换为1%分位数的值,将大于99%分位数的值替换为99%分位数的值。最后,使用 `gen` 命令生成新变量 `newvarname`。
希望这个方法能够帮助您实现Winsor化,如果您还有其他问题,请随时提出。