{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Supervised Learning Continued - What Could Go Wrong?" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "In this lab, we will demonstrate some common pitfalls that may be encountered in performing a supervised learning analysis. To this end, we will simulate data under the null (meaning, we will simulate no relationship between outcome and independent variables) to observe situations where we may commit type I error." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Supervised\n", "\n", "# Simulate noisy data matrix (EXPRS)\n", "set.seed(123)\n", "# We'll use 2 groups of 20 subjects - think 20 cases and 20 controls\n", "n=20\n", "# Simulate 1000 genes\n", "m=1000\n", "\n", "# randomly generate a matrix of 'expression levels' -- any continuous variable we may be interested in\n", "EXPRS=matrix(rnorm(2*n*m),2*n,m)\n", "\n", "# Just naming rows and columns\n", "rownames(EXPRS)=paste(\"patient\",1:(2*n),sep=\"\")\n", "colnames(EXPRS)=paste(\"gene exp\",1:m,sep=\"\")\n", "\n", "# The group labels are assigned arbitrarily - i.e. we are just randomly assigning \n", "# case/control status with no reference to gene expression\n", "grp=rep(0:1,c(n,n))\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "Attaching package: ‘genefilter’\n", "\n", "The following object is masked from ‘package:base’:\n", "\n", " anyNA\n", "\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
statisticdmp.value
gene exp10.67462430.1928810.5039985
gene exp20.74171750.22640230.4628184
gene exp33.0254230.73447520.004436959
gene exp40.40309390.13498710.6891382
gene exp50.95453010.30044770.3458485
gene exp60.33050640.097823540.7428327
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " & statistic & dm & p.value\\\\\n", "\\hline\n", "\tgene exp1 & 0.6746243 & 0.192881 & 0.5039985\\\\\n", "\tgene exp2 & 0.7417175 & 0.2264023 & 0.4628184\\\\\n", "\tgene exp3 & 3.025423 & 0.7344752 & 0.004436959\\\\\n", "\tgene exp4 & 0.4030939 & 0.1349871 & 0.6891382\\\\\n", "\tgene exp5 & 0.9545301 & 0.3004477 & 0.3458485\\\\\n", "\tgene exp6 & 0.3305064 & 0.09782354 & 0.7428327\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " statistic dm p.value\n", "gene exp1 0.6746243 0.19288096 0.503998509\n", "gene exp2 0.7417175 0.22640229 0.462818352\n", "gene exp3 3.0254227 0.73447522 0.004436959\n", "gene exp4 0.4030939 0.13498708 0.689138245\n", "gene exp5 0.9545301 0.30044772 0.345848456\n", "gene exp6 0.3305064 0.09782354 0.742832747" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Pick the top 10 features based on the \n", "#two-sample $t$-test\n", "\n", "# load the library 'genefilter' - part of the Bioconductor suite\n", "library(genefilter)\n", "\n", "# rowttests is a genefilter function that performs a student t test on rows.\n", "\n", "ttest.data=rowttests(t(EXPRS), factor(grp))\n", "head(ttest.data)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 40
  2. \n", "\t
  3. 10
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 40\n", "\\item 10\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 40\n", "2. 10\n", "\n", "\n" ], "text/plain": [ "[1] 40 10" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract the absolute value of the statistic\n", "stats=abs(ttest.data$statistic)\n", "\n", "# 'order' will return the indices of ascending values of it's argument\n", "ii=order(-stats)\n", "\n", "#Filter out all genes (i.e. columns of the matrix) except the top 10 rated by stats\n", "\n", "TOPEXPRS=EXPRS[, ii[1:10]]\n", "dim(TOPEXPRS)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we will perform a 3-nearest-neighbor clustering, just like we did with the health dynamics class data." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAYAAAD958/bAAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7N0HnB1lvf/xZ5PNboDQOwiht0iVDkLoIIpcEARB4SJYrni9oKCCVwKCYsECXhtYUASEv4IiTUpAAkiTLiVAKEnoPaTsbnb/329yHpycnHP2nN3TZubzvF4/ZuZ5pj3vOcD57TMzJwQKAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg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qhLgJQ1VMbESAggggAACCCCAAAII5EGABCkPV5k+IoAAAggggAACCCCAQFUCJEhVMbESAggggAACCCCAAAII5EGABCkPV5k+IoAAAggggAACCCCAQFUCJEhVMbESAggggAACCCCAAAII5EGABCkPV5k+IoAAAggggAACCCCAQFUCJEhVMbESAggggAACCCCAAAII5EGABCkPV5k+IoAAAggggAACCCCAQFUCJEhVMbESAggggAACCCCAAAII5EGABCkPV5k+IoAAAggggAACCCCAQFUCJEhVMbESAggggAACCCCAAAII5EGABCkPV5k+IoAAAggggAACCCCAQFUCJEhVMbESAggggAACCCCAAAII5EGgMw+dpI8IDENgnLY9cBjbs2lzBbZu7uE4GgIIIIAAAghkTYAEKWtXlP7UU+Bx7Ww/xZ713Cn7arjAww0/AgdAAAEEEEAAgcwKkCBl9tLSsToIHFWHfbALBBBAAAEEEEAAgRQJ8AxSii4Wp4oAAggggAACCCCAAAKNFSBBaqwve0cAAQQQQAABBBBAAIEUCZAgpehicaoIIIAAAggggAACCCDQWAESpMb6sncEEEAAAQQQQAABBBBIkQAJUoouFqeKAAIIIIAAAggggAACjRUgQWqsL3tHAAEEEEAAAQQQQACBFAmQIKXoYnGqCCCAAAIIIIAAAggg0FgBEqTG+rJ3BBBAAAEEEEAAAQQQSJEACVKKLhanigACCCCAAAIIIIAAAo0VIEFqrC97RwABBBBAAAEEEEAAgRQJkCCl6GJxqggggAACCCCAAAIIINBYARKkxvqydwQQQAABBBBAAAEEEEiRAAlSii4Wp4oAAggggAACCCCAAAKNFSBBaqwve0cAAQQQQAABBBBAAIEUCZAgpehicaoIIIAAAggggAACCCDQWAESpMb6sncEEEAAAQQQQAABBBBIkQAJUoouFqeKAAIIIIAAAggggAACjRUgQWqsL3tHAAEEEEAAAQQQQACBFAmQIKXoYnGqCCCAAAIIIIAAAggg0FgBEqTG+rJ3BBBAAAEEEEAAAQQQSJEACVKKLhanigACCCCAAAIIIIAAAo0VIEFqrC97RwABBBBAAAEEEEAAgRQJkCCl6GJxqggggAACCCCAAAIIINBYARKkxvqydwQQQAABBBBAAAEEEEiRAAlSii4Wp4oAAggggAAC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gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQWYEdOztzEydAgAABAssnsFM2fXjykGS35AfJzcm4du90PDy5fXJFsjUZ1w5Ix1HJvZJNyY8TjQABAgQIECBAgAABAjMp8OiM6uJk21Auyv1aPrftmQXvT4bXvSGPnzN3xTzekLwxqeJpsH7d/6ekCjKNAAECBAgQIECAAAECMyVQR3euTq5KXpTcNzkp+WFSR3oOTIbbqXlQxU4VOQ9Kjks+kdSyZybD7TV5UMs/lBydPCY5Jallr0s0AgQIECBAgAABAgQIzJTAiRlNFSx/PGdUJ/eXv2xo+RH9ZZ8bWlZ375bUkaFP1oN+W5Pba5Jrk/oY3qDdLndq+Y3J2sFCtwQIECCw/QL+Z7r9dp5JgACBNgrcPZM6Jrlz8qmkjlb8YrKlfz83P2n3zL362FidP3NxcmZybjLcHpkH+yTvSf5b8sjkjskXk/cldQ7N3FZ/m45NDkvqY2W17geSKgKmbfON7WezoTpic3ny4TkbfVgeH5RU4fK15JFJjfldSR21eXhSR4jq6M03k+G2d//B54cX5v7H+4/LddBuyJ0/SQZ9g+UX5U6lxjhou+bOLkn5Dp9zVAVT+dSY90zq/CWNAAECBAgQIECAAIElEPj7bKOOflQxVG+0634VBd9Kzk6G2wl5UMVNHen4TnJTUhch+NOkjnYMWhVB301+L6l1a9u13co5Sb2pH25VmHwmqf4qBOriBnW/CpVDk2naNGP7mWxoMO4HDm30kNyvQuziZI+kWs2hxjH4iNv5uV8FUo3r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", "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n" ], "text/plain": [ "Plot with title “Gene Expression”" ] }, "metadata": { "image/svg+xml": { "isolated": true } }, "output_type": "display_data" } ], "source": [ "plot(TOPEXPRS, col=grp+1,\n", " main=\"Gene Expression\")\n", "legend(-2, 2, c(\"Case\", \"Control\"), pch=1, col=1:2)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [1] 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", "[39] 1 1\n", "Levels: 0 1\n" ] }, { "data": { "text/plain": [ " grp\n", "mod0 0 1\n", " 0 17 0\n", " 1 3 20" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fit 3-NN\n", "library(class)\n", "mod0=knn(train=TOPEXPRS,test=TOPEXPRS,cl=grp,k=3)\n", "print(mod0)\n", "\n", "# Error Resubstituion\n", "table(mod0,grp)\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " grp\n", "mod1 0 1\n", " 0 16 0\n", " 1 4 20" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Naive CV\n", "mod1=knn.cv(TOPEXPRS,grp,k=3)\n", "table(mod1,grp)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This looks like differential gene expression. We can accurately predict case-control status, based on gene expression. But, we haven't cross-validated. And we have only 40 subjects and have looked at 1000 genes! Let's do it the right way now. This is like tossing a coin 40 times, and repeating that 1000 times. We *will* see some very long strings of heads and tails in some replicates - just by chance!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Oh! Super fancy code! I'll rewrite if there is time. Otherwise, we need to skip through.\n", "\n", "# Proper CV\n", "top.features=function(EXP,resp,test,fsnum)\n", " {\n", " top.features.i=function(i,EXP,resp,test,fsnum)\n", " {\n", " stats=abs(mt.teststat(EXP[,-i],resp[-i],test=test))\n", " ii=order(-stats)[1:fsnum]\n", " rownames(EXP)[ii]\n", " }\n", " sapply(1:ncol(EXP),top.features.i,EXP=EXP,resp=resp,test=test,fsnum=fsnum)\n", " }\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# This function evaluates the knn\n", "\n", "knn.loocv=function(EXP,resp,test,k,fsnum,tabulate=FALSE,permute=FALSE)\n", " {\n", " if(permute)\n", " resp=sample(resp)\n", " topfeat=top.features(EXP,resp,test,fsnum)\n", " pids=rownames(EXP)\n", " EXP=t(EXP)\n", " colnames(EXP)=as.character(pids)\n", " knn.loocv.i=function(i,EXP,resp,k,topfeat)\n", " {\n", " ii=topfeat[,i]\n", " mod=knn(train=EXP[-i,ii],test=EXP[i,ii],cl=resp[-i],k=k)[1]\n", " }\n", " out=sapply(1:nrow(EXP),knn.loocv.i,EXP=EXP,resp=resp,k=k,topfeat=topfeat)\n", " if(tabulate)\n", " out=ftable(pred=out,obs=resp)\n", " return(out)\n", "}\n", "\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading required package: BiocGenerics\n", "Loading required package: parallel\n", "\n", "Attaching package: ‘BiocGenerics’\n", "\n", "The following objects are masked from ‘package:parallel’:\n", "\n", " clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,\n", " clusterExport, clusterMap, parApply, parCapply, parLapply,\n", " parLapplyLB, parRapply, parSapply, parSapplyLB\n", "\n", "The following objects are masked from ‘package:stats’:\n", "\n", " IQR, mad, xtabs\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " anyDuplicated, append, as.data.frame, as.vector, cbind, colnames,\n", " do.call, duplicated, eval, evalq, Filter, Find, get, grep, grepl,\n", " intersect, is.unsorted, lapply, lengths, Map, mapply, match, mget,\n", " order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank,\n", " rbind, Reduce, rownames, sapply, setdiff, sort, table, tapply,\n", " union, unique, unlist, unsplit\n", "\n", "Loading required package: Biobase\n", "Welcome to Bioconductor\n", "\n", " Vignettes contain introductory material; view with\n", " 'browseVignettes()'. To cite Bioconductor, see\n", " 'citation(\"Biobase\")', and for packages 'citation(\"pkgname\")'.\n", "\n" ] }, { "data": { "text/plain": [ " obs 0 1\n", "pred \n", "0 7 7\n", "1 13 13" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "library(multtest)\n", "knn.loocv(t(EXPRS),as.integer(grp),\"t.equalvar\",3,10,TRUE)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Well, now that looks right! We are no longer fitting noise. What's the difference? Everytime we perform a validation step, we need to re-evaluate the top ten picks! " ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.2.3" } }, "nbformat": 4, "nbformat_minor": 0 }