8.6: Resumen
- Page ID
- 151707
\( \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}\)En este capítulo hablé de varios conceptos clave de programación, cosas que debes conocer si quieres comenzar a convertir tus scripts simples en programas completos:
- Escribir y usar guiones (Sección 8.1).
- Usando bucles (Sección 8.2) y bucles implícitos (Sección 8.5).
- Hacer declaraciones condicionales (Sección 8.3)
- Redactar sus propias funciones (Sección 8.4)
Como siempre, hay muchas cosas que estoy ignorando en este capítulo. Se necesita mucho trabajo para convertirse en un programador adecuado, así como se necesita mucho trabajo para ser un psicólogo adecuado o un estadístico adecuado, y este libro ciertamente no te va a proporcionar todas las herramientas que necesitas para dar ese paso. Sin embargo, te sorprendería lo mucho que puedes lograr usando solo las herramientas que he cubierto hasta este momento. Loops, condicionales y funciones son cosas muy poderosas, sobre todo cuando se combinan con las diversas herramientas discutidas en los Capítulos 3, 4 y 7. Lo creas o no, has tenido un comienzo bastante bueno solo por haber llegado a este punto. Si quieres seguir adelante, hay (¡como siempre!) varios otros libros que quizás quieras ver. Uno que he leído y disfrutado es “Un primer curso de programación estadística con R” Braun y Murdoch (2007), pero bastantes personas me han sugerido que “El arte de programar con R” Matloff y Matloff (2011) también merece la pena el esfuerzo.
Referencias
Braun, John, y Duncan J Murdoch. 2007. Un Primer Curso de Programación Estadística con R. Prensa de la Universidad de Cambridge Cambridge.
Matloff, Norman, y Norman S Matloff. 2011. El arte de la programación R: un recorrido por el diseño de software estadístico. Prensa Sin Almidón.
- La cita viene de Count Zero (1986)
- Bien, mentí. Demandame. Una de las mejores características de Rstudio es el soporte para R Markdown, que te permite incrustar código R dentro de un documento Markdown, y puedes publicar automáticamente tu R Markdown en la web en los servidores de Rstudio. Si eres el tipo de nerd interesado en este tipo de cosas, es realmente agradable. Y, sí, ya que también soy ese tipo de nerd, claro que soy consciente de que los cuadernos de IPython hacen lo mismo y que R simplemente se burló de su idea. Entonces, ¿qué? Todavía es genial. Y de todas formas, este libro no se llama Estadísticas de aprendizaje con Python ahora, ¿verdad? Hm. A lo mejor debería escribir una versión Python...
- Como un aparte: si solo hay un solo comando que quieres incluir dentro de tu bucle, entonces en realidad no necesitas molestarte en incluir las llaves en absoluto. No obstante, hasta que estés cómodo programando en R te aconsejo utilizarlos siempre, incluso cuando no tengas que hacerlo.
- Bien, bien. Este ejemplo sigue siendo un poco ridículo, en tres aspectos. En primer lugar, el banco absolutamente no dejará que la pareja pague menos de la cantidad requerida para rescindir el préstamo en 30 años. En segundo lugar, una tasa de interés constante de 30 años es hilarante. En tercer lugar, se puede resolver esto de manera mucho más eficiente que a través de la simulación de fuerza bruta. Sin embargo, no estamos exactamente en el negocio de ser realistas o eficientes aquí.
- Alcance léxico.
- La función
assign ()
. - Sí.
- O una lista de tales variables.