Recent Activity
We have just upgraded to version 2025.02 but a couple of things seem odd to do and I haven't found anyone who can tell me whether this is a setting issue or a change that has been made. 1. Share and collaborate We've trained our staff to use this as their home page when in Viya eg click on the square of 9 dots and choose Share and Collaborate. They could previously save and view favorites, see recents etc here. There is now only an Explore and Visualize page and seemingly no way when you have opened a report to get back to a page that shows other reports without closing the open report down. The nine square dots box has no visible option when a report is open. Staff often use multiple reports at the same time. I'm likely missing something obvious but three of us have had a look and can't see how to get back to the explore and visualise page. 2. Recents This is now a nightmare as it saves a recent for each instance of opening a report instead of once per report. As we can be building several reports at once and QA'ing someone else's it used to be handy. Now if I am building a report it doesn't take long to get a page full of the same report which is quite pointless. Maybe there was a good reason to do this but we have all found it frustrating at this point. Any way to get VIYA to just show the latest instance of each report or is this an actual change rather than a setting?
... View more

0
0
I am performing simple Pearson, Spearman and Kendall correlations between many variables using PROC CORR. 1. I need to suppress non-significant correlations (p > 0.05) in my matrix, leaving only significant correlations (p <0.05). 2. I need to show confidence intervals for these correlations. How can I do this? Thanks!
... View more

0
1
Dear SAS Community,
I want to make a stacked graph that compares two avocado varieties by Season but SAS is only reading the Hass variety but not the '464918_99' variety. Is there a way I can change the WHERE statement to solve this or do I have to format the name of this variety to a name instead of a number?
Thank you very much!
title "Ripe PeelColor: 464918_9 vs Hass by Season"; proc sgpanel data=one pctlevel=group; where Season in(2021, 2022, 2024) and Variety in('464918_99', 'Hass'); panelby Season / columns=3 onepanel; vbar Variety / group=PeelColor grouporder=ascending stat=percent groupdisplay=stack seglabel; run;
... View more

0
2
Hi. I recently asked a question about standardizing a proc genmod model to the total population distribution of a number of covariates (age, sex, status), regardless of variable distributions of these within each individual group.
In the course of @StatDave advising me how to query the coefficient weight by using the "e" option in an lsmeans statement to produce a "coef" output , I discovered that the weights I expected for the population when using the "om" option were not being produced by my model. They were weighting to something but I couldn't figure out what exactly.
After some proc freq testing, I realized the dataset I am using is a summarized data set, where each row has a variable representing the number of outcomes in those that meet that distribution of characteristics (numcount), and a variable representing those at risk for the outcome with those same characteristics (denomcount).
proc genmod data=imputed_data;
by _imputation_;
CLASS group (ref='A') age (ref='<25') status (ref='Jr') sex (ref='Male');
MODEL numcount = group age status sex /dist=poisson link=log offset=logdenomcount;
lsmeans group/ exp diff cl om e;
ods output ParameterEstimates=gm_fcs1 estimates=model_est lsmeans=allestimates diffs=relrisk;
run;
Since my poisson model had an offset for the denomcount (logdenomcount), I hadn't thought that weighting was necessary. However, when I looked at the "coef" output produced by e, I couldn't get the true population weights unless I added a weight=denomcount statement. Once added this produced the coefficient weight I would expect given the distribution of my sample (e.g., male =.8, female=.2, etc.).
I just want to confirm that this is appropriate (necessary) when data is summarized as described. Can someone please confirm?
This is my first time working with both imputed data and summarized data in this type of model so I appreciate your help!
(Below is a snippet of how the dataset is laid out: )
Obs
sex
age
status
group
_Imputation_
_TYPE_
_FREQ_
numcount
denomcount
num
denom
logdenomcount
1
Male
<25 years old
Jr
A
1
255
26
1
26
1
1
3.25810
2
Male
<25 years old
Jr
B
1
255
13
1
13
1
1
2.56495
3
Male
<25 years old
Jr
C
1
255
250
12
320
1
1
2.56495
... View more

0
1
I'm wondering if the very specific thing I'm trying to do is possible; there's other ways to solve this (see below) so it's more a question of efficiency than anything. For background, this is to be part of a macro that writes partial data step statements, so I have one absolute requirement: no step boundaries. With that in mind, I'm trying to efficiently get a list of variables on some dataset, with the kicker that this dataset can ideally be affected by clauses such as dataset(drop=...). Here's a toy macro to illustrate: %MACRO LIST_VARS(dataset);
%let dsid = %sysfunc(open(&dataset));
%let vars = ;
%do i = 1 %to %sysfunc(attrn(&dsid, nvar));
%let vars = &vars %sysfunc(varname(&dsid, &i));
%end; %let dsid = %sysfunc(close(&dsid));
&vars
%MEND;
/* Example use -- no clauses, no issue. */
%put %LIST_VARS(sashelp.class);
* Name Sex Age Height Weight ; The problem is that if you include drop= or keep= clauses, the number of variables will be affected but their variable number will not: /* Three variables retained: Name (#1), nAtBat (#3), and nAssts (#20) */
%put %LIST_VARS(sashelp.baseball(keep=na:));
* WARNING: Argument 2 to function VARNAME is out of range. ; /* Fires for varname(2) */
* Name nAtBat ; /* Note: no nAssts */ Specifically, while I'd assume the three variables can be retrieved as varname(1, 2, 3) they actually still occupy numbers 1, 3, 20 in this dataset as can be checked via PROC CONTENTS: proc contents data=sashelp.baseball(keep=na:) varnum;
quit;
* # Variable ;
* 1 Name ;
* 3 nAtBat ;
* 20 nAssts ; This creates a bit of a catch-22: to get these varnum I'd need the varname, and to get the varname I need the varnum. It is a brute-force option to keep incrementing variable numbers within varname until nvar (3) non-missing names are returned, but that isn't exactly elegant and will result in a bunch of warnings which I'd rather avoid. So, my question: is there any way to do this, i.e. how to efficiently figure out in this example that it's variables 1, 3, and 20 that were retained, in macro language? --- To be sure, I've already worked around this issue in the following ways: (i) implement drop/keep functionality in pure macro (i.e. read the full variable list and subset manually) but I'd rather also support dataset clauses, and (ii) dump the clauses into a side-session view via %sysfunc(dosubl) to then process that, but that causes quite some performance overhead. The same would hold for running e.g. PROC CONTENTS in a side session. A third option could be to first read in the full dataset, get all variables, and then handle the clauses separately, but that would also require a lot of housekeeping and manual processing. Surely there is some quick function or trick that I'm missing?
... View more

0
13
Unanswered topics
These topics from the past 30 days have no replies. Can you help?