python-swat icon indicating copy to clipboard operation
python-swat copied to clipboard

Applying formats to compued vars

Open j-honnacker opened this issue 1 year ago • 1 comments
trafficstars

Hi,

it would be very helpful if formats could be applied to computed variables - especially when working with date/time columns. The functionality seems to be there, but it's breaking the table reference.

Example: Based on a datetime column I can successfully add a time column that holds the hour of the datetime column.

# example table
conn.datastep.runCode(
	code =
	'''data test;
		format datetime e8601dt19.;
		datetime = dhms("03mar2024"d, 9, 50, 0);
		price    = 101.4;
		output;
		datetime = dhms("03mar2024"d, 10, 20, 0);
		price    = 102.5;
		output;
	run;''',
	single = 'yes'
)
tbl = conn.CASTable('test')

# add column containing the hour of the datetime column
tbl['time'] = tbl['datetime'].dt.hour*60*60

# apply time format to new column
tbl.computedvars = [{'name':'time', 'format':'time8.'}]

# check if time format was applied
tbl.columnInfo()

image

# check if time format works
tbl.head()

image

Unfortunately, after applying the format as shown above, I can't execute any operations on the table anymore:

tbl[tbl['price']>=102].head()

image

j-honnacker avatar Mar 04 '24 15:03 j-honnacker

I will look into this. Thanks for providing the example code for the problem.

bkemper24 avatar Mar 05 '24 15:03 bkemper24