That syntax is not valid. There is no macro variable named 'i', so &i is null.
Also, you are importing table_w as a data set, so the expression nrow(table_a) equals 0. Maybe you meant to import it as a matrix?
I don't know what names you want to read, but here is some sample code that might help you figure it out.
proc iml;
table_w = {'A', 'My_results', 'More_results'};
do i=1 to nrow(table_w);
dsName = strip(table_w[i]);
print i dsName;
*call ImportDataSetFromR(dsName,dsName); /* uncomment when ready */
end;
/* or if the tables are named table_w1, table_w2, etc */
do i=1 to nrow(table_w);
dsName = "table_w" + strip(char(i));
print i dsName;
*call ImportDataSetFromR(dsName,dsName); /* uncomment when ready */
end;