4.12: Obtener ayuda
- Page ID
- 151458
\( \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}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)El último tema que quiero mencionar en este capítulo es a dónde ir para buscar ayuda. Obviamente, he intentado que este libro sea lo más útil posible, pero ni siquiera está cerca de ser una guía completa, y hay miles de cosas que no cubre. Entonces, ¿a dónde deberías acudir en busca de ayuda?
Otros recursos
- El sitio web de Rseek (www.rseek.org). Una cosa que realmente me molesta de la documentación de ayuda de R es que es difícil buscar correctamente. Cuando se combina con el hecho de que la documentación es densa y altamente técnica, a menudo es una mejor idea buscar o pedir respuestas en línea a sus preguntas. Con eso en mente, el sitio web de Rseek es genial: es un motor de búsqueda específico de R. Me parece muy útil, y casi siempre es mi primer puerto de escala cuando estoy mirando a mi alrededor.
- La lista de correo R-help (ver http://www.r-project.org/mail.html para más detalles). Esta es la lista oficial de correo de ayuda de R. Puede ser muy útil, pero es muy importante que hagas tu tarea antes de publicar una pregunta. La lista recibe mucho tráfico. Si bien las personas de la lista se esfuerzan tanto como pueden para responder preguntas, lo hacen de forma gratuita, y realmente no quieres saber cuánto dinero podrían cobrar en una tarifa por hora si quisieran aplicar tarifas de mercado. En fin, te están haciendo un favor, así que sé educado. No pierda su tiempo haciendo preguntas que puedan ser respondidas fácilmente mediante una búsqueda rápida en Rseek (es grosero), asegúrese de que su pregunta sea clara y que se incluya toda la información relevante. En resumen, lea atentamente las pautas de publicación (http://www.r-project.org/posting-guide.html) y haga uso de la función
help.request ()
que R proporciona para verificar que realmente está haciendo lo que se espera.
Tomados en conjunto, los Capítulos 3 y 4 proporcionan suficientes antecedentes para que finalmente puedas comenzar a hacer algunas estadísticas! Sí, hay muchos más conceptos R que deberías conocer (y hablaremos de algunos de ellos en los Capítulos 7 y 8), pero creo que ya hemos hablado bastante de programación por el momento. Es momento de ver cómo tu experiencia con la programación puede ser utilizada para hacer algunos análisis de datos...
Referencias
Fox, J., y S. Weisberg. 2011. Un compañero R para la regresión aplicada. 2a ed. Los Ángeles: Sage.
- Observe que usé
print (keeper)
en lugar de simplemente escribirkeeper
. Más adelante en el texto a veces utilizaré la funciónprint ()
para mostrar las cosas porque creo que ayuda a dejar claro lo que estoy haciendo, pero en la práctica la gente rara vez hace esto. - Más precisamente, hay aproximadamente 5000 paquetes en CRAN, la Red Integral de Archivos R.
- Básicamente, la razón es que hay 5000 paquetes, y probablemente alrededor de 4000 autores de paquetes, y nadie sabe realmente lo que hacen todos ellos. Mantener la instalación separada de la carga minimiza las posibilidades de que dos paquetes interactúen entre sí de una manera desagradable.
- Si estás usando la línea de comandos, puedes obtener la misma información escribiendo
library ()
en la línea de comandos. - La función logit es una función matemática simple que sucede que no se ha incluido en la distribución básica de R.
- Consejo para usuarios avanzados. Puedes conseguir que R use el del paquete del
auto
usandocar: :logit ()
como tu comando en lugar delogit ()
, ya que la partecar::
dice a R explícitamente qué paquete usar. Ver también:::
si estás especialmente interesado en obligar a R a usar funciones de otra manera no lo haría, pero cuídate, ya que:::
puede ser peligroso. - No es muy difícil.
- Esto sería especialmente molesto si estás leyendo una copia electrónica del libro porque el texto que muestra la función
who ()
se puede buscar, mientras que el texto que se muestra en una captura de pantalla no lo es! - Eso sí, todo lo que eso significa es que se ha eliminado del espacio de trabajo. Si tienes los datos guardados para archivar en alguna parte, entonces ese archivo es perfectamente seguro.
- Bueno, la partición, técnicamente.
- Una cosa adicional a la que vale la pena llamar su atención es la función
file.choose ()
. Supongamos que quiere cargar un archivo y no recuerda muy bien dónde está, pero le gustaría buscarlo. Al escribirfile.choose ()
en la línea de comandos se abrirá una ventana en la que podrá navegar para encontrar el archivo; cuando haga clic en el archivo que desee, R imprimirá la ruta completa a ese archivo. Esto es un poco práctico. - Notablemente aquellos con extensiones .rda, .Rd, .Rhistory, .rdb y .rdx
- En muchos libros verás la función
read.table ()
utilizada para este propósito en lugar deread.csv ()
. Son funciones más o menos idénticas, con los mismos argumentos y todo. Se diferencian sólo en los valores por defecto. - Tenga en cuenta que no hice esto en mi ejemplo anterior al cargar el .Rdata
- Una advertencia: lo que no quieres hacer es usar el menú “Archivo”. Si miras en el menú “Archivo” verás las opciones “Guardar” y “Guardar como...”, pero no guardan el espacio de trabajo. Esas opciones se utilizan para tratar con scripts, por lo que producirán
archivos.R
. No llegaremos a esos hasta el Capítulo 8. - O funciones. Pero ignoremos las funciones por el momento.
- En realidad, no creo que alguna vez use esto en la práctica. Ya no sé por qué me molesto en hablar de ello en el libro.
- Tomando todas las advertencias habituales que se adjuntan a la medición del coeficiente intelectual como un hecho, por supuesto.
- O, más precisamente, no sabemos cómo medirlo. Podría decirse que una roca tiene cero inteligencia. Pero no tiene sentido decir que el coeficiente intelectual de una roca es 0 de la misma manera que podemos decir que el humano promedio tiene un coeficiente intelectual de 100. Y sin saber cuál es el valor de CI que corresponde a una ausencia literal de cualquier capacidad de pensar, razonar o aprender, entonces realmente no podemos multiplicar ni dividir los puntajes de CI y esperar una respuesta significativa.
- Una vez más, este es un ejemplo de coaccionar una variable de una clase a otra. Hablaré de coerción con más detalle en la Sección 7.10.
- Algunos usuarios podrían preguntarse por qué R incluso permite que el operador
==
para los factores. La razón es que a veces realmente tienes diferentes factores que tienen los mismos niveles. Por ejemplo, si estuviera analizando datos asociados a partidos de fútbol, podría tener un factor llamadohome.team
, y otro factor llamadowinning.team
. En esa situación realmente debería poder preguntar sihome.team == winning.team
. - Tenga en cuenta que, cuando escribo la fórmula, R no comprueba si las variables
out
ypred
realmente existen: es solo más tarde cuando intentas usar la fórmula para algo que esto sucede. - Para lectores con experiencia en programación: lo que estoy describiendo son los conceptos básicos de cómo funcionan los métodos S3. Sin embargo, debe tener en cuenta que R tiene dos sistemas completamente distintos para hacer programación orientada a objetos, conocidos como S3 y S4. De los dos, S3 es más simple e informal, mientras que S4 admite todas las cosas que podrías esperar de un lenguaje totalmente orientado a objetos. La mayoría de los genéricos con los que nos encontraremos en este libro usan el sistema S3, lo cual es conveniente para mí porque todavía estoy tratando de averiguar S4.