Как я могу создать конечный счет для двоичных данных в Stata?

StackOverflow https://stackoverflow.com//questions/25006193

  •  20-12-2019
  •  | 
  •  

Вопрос

в Stata, у меня в настоящее время есть набор данных, который выглядит как:

Введите описание изображения здесь

Я пытаюсь создать «задний счетчик» в столбце B, чтобы он выглядел:

Введите описание изображения здесь

Здесь счетчик начинается в 1, и каждый раз, когда в A «1» появляется в A, B добавляет значение.

Это, кажется, очень просто, но я не уверен, как это сделать именно.Вот что я сделал до сих пор:

Предполагая, что столбец A называется «A» в Stata,

Я использую:

gen B = A + A[_n - 1]
.

Но это что-то дает мне что-то.Я не уверен, как действовать, у кого-нибудь есть какие-либо советы?

Это было полезно?

Решение

Вот один из способов:

clear all
set more off

*----- example data -----

input ///
var1
0
0
0
0
1
0
0
1
0
0
0
end

list, sep(0)

*----- what you want -----

gen counter = sum(var1) + 1

list, sep(0)
.

Функция sum() даст вам совокупную сумму. Смотрите help sum(). Это очень базовая функция Stata. Генеракодицетагкод быстровал бы вас там быстро.

Ваш подход не удается, потому что вы добавляете только для каждого наблюдения, «тока» значение search sum с предыдущим значением самого значения. Что может звучать как совокупную сумму, но подумайте об этом, и вы увидите, что это не так.

с вашим кодом и моими данными, результат будет:

     +----------------+
     | var1   counter |
     |----------------|
  1. |    0         . |
  2. |    0         0 |
  3. |    0         0 |
  4. |    0         0 |
  5. |    1         1 |
  6. |    0         1 |
  7. |    0         0 |
  8. |    1         1 |
  9. |    0         1 |
 10. |    0         0 |
 11. |    0         0 |
     +----------------+
.

Первое наблюдение для A отсутствует (counter). Это потому, что нет предыдущего значения для первого наблюдения в ., поэтому Stata делает что-то вроде генеракодицетагкода.

Второе наблюдение за генеракодицетагкодом является генеракодицетагкод.

Пятое наблюдение за генеракодицетагкодом является генеракодицетагкод.

Седьмое наблюдение за генеракодицетагкод - генеракодицетагкод. И так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top