2.4: Marcos de datos
- Page ID
- 149795
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
El objeto fundamental utilizado para almacenar tablas de datos en R se denomina marco de datos. Podemos pensar en un marco de datos como una forma de organizar los datos en una tabla grande con una fila para cada sistema medido y una columna para cada parámetro. Una característica interesante y útil de R es que todas las columnas en un marco de datos no necesitan ser del mismo tipo de datos. Algunas columnas pueden consistir en datos numéricos, por ejemplo, mientras que otras columnas contienen datos textuales. Esta característica es bastante útil a la hora de manipular archivos de datos grandes y heterogéneos.
Para acceder a los datos de la base de datos de la CPU, primero debemos leerlo en el entorno R. R tiene funciones incorporadas para leer datos directamente de archivos en formato csv (valores separados por comas) y para organizar los datos en marcos de datos. Los detalles de este proceso de lectura pueden llegar a ser un poco desordenados, dependiendo de cómo se organicen los datos en el archivo. Aplazaremos los detalles de la lectura del archivo de base de datos de CPU en R hasta el Capítulo 6. Por ahora, usaremos una función llamada extract_data (), que fue escrita específicamente para leer el archivo DB de la CPU.
Para utilizar esta función, copie tanto los archivos all-data.csv como los archivos Read-Data.r en un directorio de su computadora (puede descargar ambos archivos del sitio web de este libro que se muestra en la p. ii). Después inicia el entorno R y configura el directorio local en R para que sea este directorio usando el menú desplegable Archivo -> Cambiar directorio. Luego use el menú desplegable Archivo -> Código fuente R para leer el archivo Read-Data.r en R. Cuando se complete el código R de este archivo, debe tener seis nuevos marcos de datos en su entorno de trabajo R: int92.dat, fp92.dat, int95.dat, fp95.dat, int00.dat, fp00.dat, int06.dat y fp06.dat.
El marco de datos int92.dat contiene los datos de la base de datos CPU DB para todos los procesadores para los que se disponía de resultados de rendimiento para el programa de referencia SPEC Integer 1992 (Int1992). Del mismo modo, fp92.dat contiene los datos de los procesadores que ejecutaron los benchmarks Floating-Point 1992 (Fp1992), y así sucesivamente. Utilizo el sufijo .dat para mostrar que el nombre de la variable correspondiente es un marco de datos.
Simplemente escribiendo el nombre del marco de datos hará que R imprima toda la tabla. Por ejemplo, aquí están las primeras líneas impresas después de que escribo int92.dat, trunca para encajar dentro de la página: nperf perf reloj hilos núcleos... 1 9.662070 68.60000 100 1 1... 2 7.996196 63.10000 125 1 1... 3 16.363872 90.72647 166 1 1... 4 13.720745 82.00000 175 1 1... La primera fila es el encabezado, que muestra el nombre de cada columna. Cada fila posterior contiene los datos correspondientes a un procesador individual. La primera columna es el número de índice asignado al procesador cuyos datos están en esa fila. Las siguientes columnas son los valores específicos registrados para ese parámetro para cada procesador. La cabeza de función (int92.dat) imprime solo el encabezado y las primeras filas del marco de datos correspondiente. Le da un vistazo rápido al marco de datos cuando interactúa con sus datos.
En el cuadro 2.1se muestra la lista completa de nombres de columnas disponibles en estos marcos de datos. Tenga en cuenta que los nombres de las columnas se listan verticalmente en esta tabla, simplemente para que encajen en la página.
Cuadro 2.1: Los nombres y definiciones de las columnas en los marcos de datos que contienen los datos de CPU DB.
Número de columna | Nombre de la columna | Definición |
1 | (en blanco) | Número de índice del procesador |
2 | nperf | Rendimiento normalizado |
3 | perf | Rendimiento SPEC |
4 | reloj | Frecuencia de reloj (MHz) |
5 | hilos | Número de hilos de hardware disponibles |
6 | núcleos | Número de núcleos de hardware disponibles |
7 | TDP | Potencia de diseño térmico |
8 | transistores | Número de transistores en el chip (M) |
9 | DieSize | El tamaño del chip |
10 | voltaje | Voltaje nominal de funcionamiento |
11 | FeatureSize | Tamaño de la característica de fabricación |
12 | canal | Tamaño del canal de fabricación |
13 | Fo4delay | Retraso Fan-out-cuatro |
14 | L1iCache | Tamaño de caché de instrucciones de nivel 1 |
15 | L1dCache | Tamaño de caché de datos de nivel 1 |
16 | L2cache | Tamaño de caché de nivel 2 |
17 | L3cache | Tamaño de caché de nivel 3 |