Robinson Cano expected to miss several weeks with torn hamstring