Notation can get confusing...
Since texts want to use ##\vec r## as a general vector, and they want to be able to use the convention that ##r=|\vec r|##, they generally do not like to call the radial component "r" ... the books I've seen use ##\rho## for this. Thus, the generic vector in cylindrical coordinates is ##\vec r = (r_\rho, r_\theta, r_z)## and ##r^2=r_\rho^2+r_z^2## easily enough. It is a common shorthand, since ##\vec r## is understood to be a position vector, to write ##\vec r = (\rho,\theta,z)##.
The problem statement unfortunately uses ##\rho## for the surface charge density ... which we'd usually call ##\sigma##, in part, to avoid this confusion.
The situation is further confused by the choices made in the working so far ...
Changing to a clearer notation: ... the problem just says to find the electric field everywhere due to a cylindrical shell of charge density ##\sigma##.
We are free to choose our variables, let's pick R for the radius of the cylinder and define other variables as we go.
In general, the electric field element ##d\vec E (\vec r)## due to charge element ##dq(\vec p)## (charge at position ##\vec p##) is given by $$d\vec E(\vec r) = \frac{k\sigma\;dA}{|\vec r - \vec p|^3}(\vec r - \vec p)$$ ... strategy is to integrate over all the charge present, choosing cylindrical-polar coords with z-axis along the cylinder axis.
Symmetry suggests that the field should depend on the radial distance alone - so choose ##\vec r = (r,0,0)## and ##\vec p = (R,\theta,z)## and integrate over all ##\vec p##. (It is common for texts to use ##\vec r'## in the role I have chosen for ##\vec p## ... that's OK and normal, I just like to avoid primed variables where I feel I can get away with it and calling a position "p" has a nice ring to it.)
Notice, in this specific case: ##|\vec r| = \sqrt{r_\rho^2 + r_z^2} = r## ... which is handy, and the definitions have been finessed to produce this result.
We can compute ##|\vec r - \vec p|## from our knowledge of the geometry of triangles ... we know that ##|\vec p| = p## for instance. We could use the cosine rule on ##\vec p## and ##\vec r## if we knew the angle between them - which we don't, not directly. Anyway, even if we did, we would still need the answer in terms of the angle ##\theta## - which is actually the angle between ##\vec p'## (the projection of ##\vec p## onto the x-y plane) and ##\vec r##
ie. ##\vec p' = \vec p - z\hat k = (R,\theta,0)## and ##\vec r\cdot\vec p' = rp\cos\theta## holds... etc.
So we can use the cosine rule between ##\vec p'## and ##\vec r##, and use regular pythagoras to get the length we want (##\hat k \perp \vec p'##)
Thus: ##|\vec r - \vec p|^2 = z^2 + R^2 + r^2 + 2Rr\cos\theta## ... which is as far as we've got. (Check my geometry - I don't always get this right.)
Recall: ##z## and ##\theta## are the variables we are integrating over... this will leave "r" as the unknown that E varies with respect to.
The next issue is to deal with the vector sum that results from the integration. We'd rather not do that by brute force through the algebra, so we turn to geometry for help like we did for the magnitude above, we can also exploit our understanding of the physics of electric fields.
From the symmetry, we expect the resulting field to have no ##\theta## or ##z## directions, and that the remaining direction has no dependence on ##\theta## or ##z##. So we expect ##\vec E = E(r)\hat r: \hat r : \hat r = \vec r/r## ... note that ##d\vec E = \big(dE_\rho(\rho,\theta,z), dE_\theta(\rho,\theta,z), dE_z(\rho,\theta,z)\big)## ... which should suggest a strategy.
Failing that ... just look at the situation for a ring of charge and see what happens, then investigate the case that the ring is not in the x-y plane.
That is the advise so far...