Tengo un conjunto de datos con variables como col1, col2, col3, ..., col15. Quiero cambiarles el nombre a new1, new2, new3, ..., new 15. Puedo escribir 15 veces el cambio de nombre similar col1 = new1; en SAS, pero ¿cómo puedo lograr este ciclo de uso? Gracias.En SAS, use el ciclo para cambiar el nombre de las columnas indexadas?
Respuesta
En primer lugar, no está claro si está hablando de la declaración rename
en proc datasets
o en el paso de datos. Si no necesita hacer nada más con los datos, definitivamente debe usar conjuntos de datos proc para hacerlo, porque de lo contrario (en un paso de datos) está leyendo/escribiendo innecesariamente cada registro en el conjunto de datos, solo para alterar los nombres de las variables .
Si son mediante el paso de datos, sólo tiene que utilizar
rename col1-col15=new1-new15;
No estoy seguro de si se puede usar ese acceso directo en conjuntos de datos proc. Lo que nos lleva a tu pregunta de bucle. A menos que esté haciendo esto muchas veces o dinámicamente, probablemente sea tan fácil copiar y pegar el código 15 veces. He aquí una manera de generar la declaración que usted quiere, lo puso en una variable macro, y utilizar esa variable macro en la declaración de cambio de nombre:
data _null_;
length myVar $ 1000;
*myVar='';
do i=1 to 15;
myVar=catx(' ',myVar,' ',cats('col',i,'=','new',i));
end;
call symput('rename',myVar);
run;
%put &rename;
proc datasets library=mylibrary;
modify mydataset;
rename &rename;
run;
Aquí hay una manera de hacerlo en el caso de que los nombres de las variables se ajustan a un buen , fácil patrón de nomenclatura:
DATA out;
SET in;
ARRAY oldnames (15) col1-col15;
ARRAY newnames (15) new1-new15;
DO i = 1 TO 15;
newnames(i) = oldnames(i) ;
END;
RUN;
O, más genéricamente:
DATA out;
SET in;
ARRAY oldnames (4) abc def ghi jkl ;
ARRAY newnames (4) mno pqr stu vwx ;
DO i = 1 TO 4;
newnames(i) = oldnames(i) ;
END;
RUN;
- 1. Cambiar el nombre de filas y columnas en I
- 2. CQL y el rango en columnas indexadas secundarias
- 3. postgresql: ¿cómo lista columnas indexadas?
- 4. Cambiar el nombre de columnas de clave externa en MySQL
- 5. Cambiar el nombre de las columnas created_at, updated_at de ActiveRecord/Rails
- 6. Mostrar tablas Columnas indexadas de FULLTEXT
- 7. Cambiar el nombre de los nombres de las columnas en la base de datos postgresql
- 8. Mysql - ¿Cambiar el nombre de todas las tablas y columnas a minúsculas?
- 9. cómo cambiar el nombre de las secciones en látex
- 10. ¿Cómo puedo cambiar el nombre de las filas/columnas de salida de las funciones ** ply de plyr?
- 11. Cómo cambiar instantáneamente el nombre de la variable para todas las referencias en el proyecto
- 12. ¿Cuál es el mejor IDE no SAS para el lenguaje SAS?
- 13. Cambiar el nombre de subprocesos en Java
- 14. Cómo cambiar las columnas de DataTop orden
- 15. PHP cambiar el nombre de las teclas de una matriz
- 16. Para cambiar el nombre de la columna en DB2
- 17. Cambiar el nombre de columna en MySQL
- 18. Detener el programa SAS Error
- 19. Reingresando notación para mónadas indexadas
- 20. use el comodín para hacer coincidir el atributo en xpath
- 21. Columnas con nombre Cambio de nombre
- 22. Postgres - array para el ciclo
- 23. Auto cambiar el tamaño de las anchuras de las columnas de JTable dinámicamente
- 24. Determinar el contenido varchar en columnas nvarchar
- 25. Varios contadores en Javascript para el ciclo
- 26. Cambiar el nombre del nombre del argumento en JAX-WS
- 27. use class y enum con el mismo nombre?
- 28. cambiar el nombre de artefacto desplegado basado en el perfil
- 29. cómo cambiar el nombre de tabcontrol
- 30. cambiar el nombre del proyecto y el nombre del paquete
se necesitaría añadir una sentencia de descarte, de lo contrario sólo estás añadiendo las variables new1-nuevos15. –