Опция xline при форматировании даты% th? - PullRequest
0 голосов
/ 17 октября 2018

Я делаю связанный двухсторонний график с осью X в качестве дат, отформатированных как% th со значениями с 2011h1 по 2017h2.Я хочу поставить вертикальную линию в 2016h2, но ничего из того, что я пробовал, не сработало.

xline(2016h2) xline("2016h2") xline(date==2016h2) xline(date=="2016h2")

Я думаю, это может быть потому, чтоЯ отформатировал даты с

gen date  = yh(year, half) 
format date %th

Я думаю, что это MWE:

age1820 date
10.42   2011h1
10.33   2011h2
11.66   2012h1
11.01   2012h2
14.29   2013h1
10.95   2013h2
12.42   2014h1
7.04    2014h2
7.07    2015h1
6.95    2015h2
4       2016h1
8.07    2016h2
5.98    2017h1
3.19    2017h2

graph twoway connected age1820 date, xline(2016h2)

1 Ответ

0 голосов
/ 17 октября 2018

Ваш пример не будет работать так, как написано, без дополнительной работы.Я думаю, что в будущих публикациях вы можете захотеть использовать полностью рабочий пример, чтобы максимально увеличить вероятность того, что вы быстро получите хороший ответ.Вот почему я составил некоторые поддельные данные ниже.

Попробуйте что-то вроде этого:

clear
set obs 20  
gen date = _n + 100
format date %th
gen age = _n*2
display %th 116 
display %th 117
tw connected age date, xline(116 `=th(2018h2)') tline(2019h1) 

Суть в том, что Stata имеет дело с датами как целыми числами, к которым прикреплена специальная меткаим с помощью команды форматирования (но не метки значения).Например, 0 соответствует 1960h1.Другими словами, вам нужно либо:

  1. сказать xline() число, соответствующее дате, которую вы хотите
  2. использовать th(), чтобы выяснить, что это за число, и заставитьоценка внутри xline().
  3. использует tline(), который достаточно умен, чтобы понимать даты.

Я думаю, что третий вариант - лучший.

...