turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- SAS Programming
- /
- Base SAS Programming
- /
- Calculate interval values

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-06-2017 02:25 PM

HI there;

I would like to calculate the interval between values by ID, as following:

ID | value | wants | |

A | 39 | 39 | |

A | 45 | 6 | = 45-39 |

B | 38 | 38 | |

B | 40 | 2 | = 40-38 |

B | 45 | 5 | = 45-40 |

C | 37 | 37 | |

C | 40 | 3 | = 40-37 |

C | 42 | 2 | = 42-40 |

D | 40 | 40 |

the column 'wants' is what I want to get.

Hope it's not confused you.

Thanks in advace.

Accepted Solutions

Solution

04-06-2017
02:54 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-06-2017 02:49 PM

SAS knows how to do this, as long as your data set is sorted by ID:

data want;

set have;

by ID;

wants = dif(value);

if first.id then wants = value;

run;

All Replies

Solution

04-06-2017
02:54 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-06-2017 02:49 PM

SAS knows how to do this, as long as your data set is sorted by ID:

data want;

set have;

by ID;

wants = dif(value);

if first.id then wants = value;

run;

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

04-06-2017 02:54 PM

Thank you very much, Astounding.

I appreciate your prompt response!