LNCD

Table of Contents

  • LNCD Home
  • Administration
  • Notebooks
  • Journal Club Presentations
  • Publications
  • Current Projects
  • Completed Projects
  • Current Grants
  • Datasets by Project
  • Brain ROIs and Measures
  • ️Tools And Methods
  • Big Data
  • RA Homepage
  • Recent Changes
  • Maintenance
  • Site Map
  • Random Page
LNCD
Admin » GNU R

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tools:r [2023/09/19 21:09] – willtools:r [2025/07/22 17:01] (current) – [na.action] vid79
Line 1: Line 1:
-=== GNU R ===+====== GNU R ======
  
-The [[https://www.r-project.org/|GNU R programming language]] is often paired with [[https://posit.co/download/rstudio-desktop/|posit's RStudio Desktop IDE]]. You can also find a web interface to [[http://rhea.wpic.upmc.edu:8787/|Rstudio on rhea]] (also see [[:admin:remoteaccess|Remote Access]]). 
  
-See [[:tools:tutorials|Tutorials]] for some links.+The [[https://www.r-project.org/|GNU R programming language]] is often paired with [[https://posit.co/download/rstudio-desktop/|posit's RStudio Desktop IDE]] and a suit of libraries (language packages) known as [[:tools:tidyverse|tidyverse]] (includes ''dplyr'' and ''ggplot2'').  
 + 
 +You can also find a web interface to [[http://rhea.wpic.upmc.edu:8787/|Rstudio on rhea]] (also [[:admin:remoteaccess]]). 
 + 
 +[[:tools:tutorials|Tutorials]] contains additional resources. 
 + 
 +See [[:tools:r:issues]] for log of debugged problems. 
 +===== Notes ===== 
 +==== na.action for residual ==== 
 +When adding module residuals back to a dataframe, you need ''residuals()'' to return the same length as the input data.frame. use ''lm(na.action=na.exclude)''. 
 + 
 +For example, 
 + 
 +<code=R> 
 +d <-  data.frame(x=c(1:4,NA),y=1:5); 
 +m <- lm(x~y,d,na.action=na.exclude); 
 +nrow(d);              # 5 
 +length(m$residuals);  # 4 
 +length(residuals(m))  # 5 
 +</code> 
 + 
 + 
 +This avoids the error 
 + 
 +  Error in `$<-.data.frame`(`*tmp*`, ... 
 +    replacement has 237 rows, data has 348 
 + 
 + 
 +==== MASS::select vs dplyr::select  ==== 
 +If you load MASS after dplyr, ''select'' will be ''MASS::select'' not ''dplyr::select'' and you're likely to encounter hard-to-debug errors about unused arguments 
 + 
 +> Error in select ...  : unused arguments 
 +  
 +**solutions** include  
 +  - load MASS first 
 +  - force select to be ''dplyr'''s version, or  
 +  - unload MASS if you don't need it 
 + 
 +<code> 
 +# load mass before dplyr to have 'select' be from dplyr 
 +library(MASS) 
 +library(dplyr) 
 + 
 +# force which select (if MASS was already loaded after dplyr and overwrite the function) 
 +select <- dplyr::select 
 + 
 +# or unload MASS 
 +detach("package:MASS", unload=TRUE) 
 + 
 +# check to see 
 +environment(select) # if "MASS", you're in for a bad time 
 +</code> 
 +===== Backlinks ===== 
  
 {{backlinks>.}} {{backlinks>.}}