R語言基礎--包的操作與內置數據集

R語言包的安裝

參考文章

在R中大概有幾種包的安裝方式。

install.packages()常規包的安裝

括號里面包的名稱要加英文引號,在列出的CRAN鏡像站點列表中選擇一個進行下載,例如

install.packages(“ggplot2”)

安裝包的時候可以切換安裝源,如下所示:

install.packages(pkgs, lib, repos = getOption("repos"),
    contriburl = contrib.url(repos, type),
    method, available = NULL, destdir = NULL,
    dependencies = NA, type = getOption("pkgType"),
    configure.args = getOption("configure.args"),
    configure.vars = getOption("configure.vars"),
    clean = FALSE, Ncpus = getOption("Ncpus", 1L),
    verbose = getOption("verbose"),
    libs_only = FALSE, INSTALL_opts, quiet = FALSE,
    keep_outputs = FALSE, ...)

使用格式為:

install.packages("ABC",repos="http://mirror.bjtu.edu.cn/ ")

使用devtools從Github上安裝包

如果是要從GitHub上安裝包,需要先安裝devtools,如下所示:

install.packages("devtools")
install_github("genomicsclass/dagdata")

其它的包安裝命令,如下所示:

install.packages("installr")   # 下載并安裝 installr 包
library(installr)              # 裝載 installr 包
install.RStudio()              # 下載并安裝 RStudio IDE
install.Rtools()               # 你需要 Rtools 來構建自己的包
install.git()                  #git 提供了代碼的版本控制功能

如果要想把R包安裝到其他位置,可以使用以下代碼:

install.packages( 
  c("xts", "zoo"),
  lib = "some/other/folder/to/install/to", 
  repos = "http://www.stats.bris.ac.uk/R/")

其中lib參數就是安裝的包的位置,repos就是安裝源。

通過BiocLite來安裝生信工具

生信很多工具是在bioconductor上,因此需要biocLite,由于R版本升級,現在安裝都是BiocManager::install()
此處仍然列出,如下所示:

#source("https://bioconductor.org/biocLite.R")
#options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
# 使用相應的鏡像

#biocLite(c("ALL","CLL", "pasilla", "airway")) #數據包
#biocLite(c("limma","DESeq2", "clusterProfiler")) #軟件包

通過BiocManager來安裝生信工具

在使用bioconductor時由于需要在線連接才能安裝包,現在很多已經使用BiocManager的方式來安裝,安裝代碼如下所示:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("ballgown", version = "3.8")

批量下載并且加載R包

list.of.packages <- c("xx", "yy") # replace xx and yy with package names
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
lapply(new.packages, require, character.only=T)

使用if語句安裝并加載包

通過if語句,可以判斷某個包是否存在,如果不存在,就先下載,后加載,如下所示:

#另外可以檢測某個包是否存在,只有不存在時才會安裝
if (! require ('reshape2')){
    install.package("reshape2")
    library(reshape2)
}

如果是bioconductor上的包,也可以按以下方式進行安裝:

if (! require ('CLL')){
    options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
    BiocInstaller::biocLite('CLL',ask = F, suppressUpdates = T)
}

包的加載

包的載入函數為library()require(),安裝完包后,需要加載才能使用其中的函數,此時括號中不使用引號。兩者的不同之處在于library()載入之后不返回任何信息,而require()載入后則會返回TRUE,因此require()適合用于程序的書寫。

library(ggplot2)

require(foreign)

Loading required package: foreign

如果想不加載包就使用其中的函數,則需要使用雙冒號,即::,看一個案例:

x <- rnorm(1000)
skewness(x)

運行結果如下所示:

skewness(x)
Error in skewness(x) : could not find function "skewness"

結果顯示,沒有skewness這個函數,因為這個函數是moments包中的函數,沒有加載這個包,就無法使用這個函數。現在我們在沒有加載這個包的情況下,使用雙冒號來看一下:

moments::skewness(x) 

[1] -0.01674

再用library()來使用一下:

library(moments)
skewness(x)

[1] -0.01674

使用雙冒號這種方式在一種情況下比較適合。

這種情況就是:假設我們同時加載了A包與B包,A包中有一個名為a()的函數,B包中也有一個名為a()的函數。此時,如果先導入A包,再導入B包,B包中的a()函數就會屏蔽A包中的a()函數,也就是說,這兩個同名函數就會出現沖突。

因此為了避免出現這種情況,可以不加載A包,也不加載B包,而是將它們的同名函數提取出來,如下所示:

fun1 <- A::a

fun2 <- B::a

如果你此時已經恰好載入一個包,想要解決綁定,就可以使用unloadNamespace()函數即可,例如:

unloadNamespace("moments")

查看一個包的幫助

help(package="base")

卸載包

detach(),這是library()的反向操作,此操作主要是為了避免某些包中的函數名稱相同,造成沖突,注意與library()的參數不同,detach()參數為detach(package:包的名稱),library(包的名稱),例如:

library(ggplot2) #加載包
(.packages()) #列出當前已經加載的包

 [1] "foreign"   "ggplot2"   "stats"     "graphics"  "grDevices" "utils"    

 [7] "datasets"  "methods"   "base"

detach(package:ggplot2)  #卸載ggplot2包

(.packages()) #列出當前已經加載的包

 [1] "foreign"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 

 [7] "methods"   "base"

刪除包remove.packages()

使用條件:R語言自帶的install.packages()函數來安裝一個包時,都是默認安裝最新版的。 但是有些R包的開發者他會引用其它的一些R包,但是它用的是舊版本的功能,自己來不及更新或者疏忽了。 而我們又不得不用他的包,這時候就不得不卸載最新版包,轉而安裝舊版本包。

查詢加載的包

search()

search()

 [1] ".GlobalEnv"        "package:stats"     "package:graphics" 

 [4] "package:grDevices" "package:utils"     "package:datasets" 

 [7] "package:methods"   "Autoloads"         "package:base"

.libPaths()能夠顯示庫所在的位置

.libPaths()

 [1] "C:/Users/Cloud/Documents/R/win-library/3.1"

 [2] "C:/Program Files/R/R-3.1.3/library"

library()顯示庫中有哪些包

library()
backports               Reimplementations of Functions Introduced Since
                        R-3.0.0
base64enc               Tools for base64 encoding
bitops                  Bitwise Operations
bookdown                Authoring Books and Technical Documents with R
                        Markdown
caTools                 Tools: moving window statistics, GIF, Base64,
                        ROC AUC, etc.
cellranger              Translate Spreadsheet Cell Ranges to Rows and
                        Columns
digest                  Create Compact Hash Digests of R Objects
evaluate                Parsing and Evaluation Tools that Provide More
                        Details than the Default

查看已經安裝的包

函數installed.packages()

如下所示:

還可以這么輸入代碼:

pkgs <- installed.packages()

colnames(pkgs)

結果如下所示:

pkgs <- installed.packages()

colnames(pkgs)

 [1] "Package"               "LibPath"               "Version"              

 [4] "Priority"              "Depends"               "Imports"              

 [7] "LinkingTo"             "Suggests"              "Enhances"             

[10] "License"               "License_is_FOSS"       "License_restricts_use"

[13] "OS_type"               "MD5sum"                "NeedsCompilation"     

[16] "Built"

當需要檢查包是否已經安裝時,可以使用以下代碼:

c("moments", "Built") %in% installed.packages()[, "Package"]

結果如下所示:

c("moments", "Built") %in% installed.packages()[, "Package"]

[1]  TRUE FALSE

查看包的版本

查看包的版本可以通過下面代碼實現:


[1] "3.2.0"

包的更新update.packages()

update.packages()

查看本地的包

查看默認加載的包,忽略基本的包

getOption("defaultPackages")

[1] "datasets"  "utils"     "grDevices" "graphics"  "stats"     "methods"

查看當前已經加載過的包

(.packages())

[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
[7] "base"

顯示所有可用的包

(.packages(all.available=TRUE))

(.packages(all.available=TRUE))

  [1] "bitops"       "car"          "caTools"      "coin"        
  [5] "colorspace"   "crayon"       "curl"         "dichromat"   
  [9] "digest"       "evaluate"     "formatR"      "fun"         
 [13] "ggplot2"      "gtable"       "highr"        "htmltools"   
 [17] "httr"         "ISwR"         "jsonlite"     "KMsurv"      
 [21] "knitr"        "labeling"     "lme4"         "magrittr"    
 [25] "maps"         "maptools"     "markdown"     "MatrixModels"
 [29] "memoise"      "mime"         "minqa"        "mnormt"      
 [33] "modeltools"   "multcomp"     "munsell"      "mvtnorm"     
 [37] "nloptr"       "openssl"      "pbkrtest"     "plyr"        
 [41] "praise"       "psych"        "quantreg"     "R6"          
 [45] "RColorBrewer" "Rcpp"         "RcppEigen"    "RCurl"       
 [49] "reshape2"     "rmarkdown"    "sandwich"     "scales"      
 [53] "sp"           "SparseM"      "stringi"      "stringr"     
 [57] "swirl"        "testthat"     "TH.data"      "yaml"        
 [61] "zoo"          "base"         "boot"         "class"       
 [65] "cluster"      "codetools"    "compiler"     "datasets"    
 [69] "foreign"      "graphics"     "grDevices"    "grid"        
 [73] "KernSmooth"   "lattice"      "MASS"         "Matrix"      
 [77] "methods"      "mgcv"         "nlme"         "nnet"        
 [81] "parallel"     "rpart"        "spatial"      "splines"     
 [85] "stats"        "stats4"       "survival"     "tcltk"       
 [89] "tools"        "utils"

自定義啟動時候的加載包

如果需要長期使用某個包的話,每次開啟都需要輸入library(),比較麻煩,因此可以讓R啟動時自動加載某些包。在R的安裝目錄/etc/Rprofile.site加入下載語句:

例如讓R啟動時自動加載ggplot2包

local({old <- getOption(“defaultPackages”)
options(defaultPackages = c(old, “ggplot2”))})

安裝包,并加載包

if(!require("multcomp")){

  install.packages("multcomp")

  library(multcomp)

}

常用R包的搜集

數據導入

以下R包主要用于數據導入和保存數據

  • feather:一種快速,輕量級的文件格式。在R和python上都可使用
  • readr:實現表格數據的快速導入。中文介紹可參考這里
  • readxl:讀取Microsoft Excel電子表格數據
  • openxlsx:讀取Microsoft Excel電子表格數據
  • googlesheets:讀取google電子表格數據
  • haven:讀取SAS,SPSS和Stata統計軟件格式的數據
  • httr:從網站開放的API中讀取數據
  • rvest:網頁數據抓取包
  • xml2:讀取HTML和XML格式數據
  • webreadr:讀取常見的Web日志格式數據
  • DBI:數據庫管理系統通用接口包
  • RMySQL:用于連接MySQL數據庫的R包
  • RPostgres:用于連接PostgreSQL數據庫的R包
  • bigrquery用于連接Google BigQuery的R包
  • PivotalR:用于讀取Pivitol(Greenplum)和HAWQ數據庫中的數據
  • dplyr:提供了一個訪問常見數據庫的接口
  • data.table:data.table包的fread()函數可以快速讀取大數據集
  • git2r:用于訪問git倉庫

數據整理

以下R包主要用于數據整理,以便于你后續建模分析:

  • tidyr:用于整理表格數據的布局
  • dplyr:用于將多個數據表連接成一個整齊的數據集
  • purrr:函數式編程工具,在做數據整理時非常有用。
  • broom:用于將統計模型的結果整理成數據框形式
  • zoo:定義了一個名zoo的S3類型對象,用于描述規則的和不規則的有序的時間序列數據。

數據可視化

以下R包用于數據可視化:

  • ggplot2及其擴展:ggplot2包提供了一個強大的繪圖系統,并實現了以下擴展

    • ggthemes:提供擴展的圖形風格主題
  • ggmap:提供Google Maps,Open Street Maps等流行的在線地圖服務模塊

  • ggiraph:繪制交互式的ggplot圖形

  • ggstance:實現常見圖形的橫向版本

  • GGally:繪制散點圖矩陣

  • ggalt:添加額外的坐標軸,geoms等

  • ggforce:添加額外geoms等

  • ggrepel:用于避免圖形標簽重疊

  • ggraph:用于繪制網絡狀、樹狀等特定形狀的圖形

  • ggpmisc:光生物學相關擴展

  • geomnet:繪制網絡狀圖形

  • ggExtra:繪制圖形的邊界直方圖

  • gganimate:繪制動畫圖

  • plotROC:繪制交互式ROC曲線圖

  • ggspectra:繪制光譜圖

  • ggnetwork:網絡狀圖形的geoms

  • ggradar:繪制雷達圖

  • ggTimeSeries:時間序列數據可視化

  • ggtree:樹圖可視化

  • ggseas:季節調整工具

  • lattice:生成柵欄圖

  • rgl:交互式3D繪圖

  • ggvis:交互式圖表多功能系統

  • htmlwidgets:一個專為R語言打造的可視化JS庫

    • leaflet:繪制交互式地圖
  • dygraphs:繪制交互式時間序列圖

  • plotly:交互式繪圖包,中文介紹詳見這里

  • rbokeh:用于創建交互式圖表和地圖,中文介紹

  • Highcharter:繪制交互式Highcharts圖

  • visNetwork:繪制交互式網狀圖

  • networkD3:繪制交互式網狀圖

  • d3heatmap:繪制交互式熱力圖,中文介紹

  • DT:用于創建交互式表格

  • threejs:繪制交互式3d圖形和地球儀 -rglwidget:繪制交互式3d圖形

  • DiagrammeR:繪制交互式圖表

  • MetricsGraphics:繪制交互式MetricsGraphics圖

  • rCharts:提供了對多個javascript數據可視化庫(highcharts/nvd3/polychart)的R封裝。

  • coefplot:可視化統計模型結果

  • quantmod:可視化金融圖表

  • colorspace:基于HSL的調色板

  • viridis:Matplotlib viridis調色板

  • munsell:Munsell調色板

  • RColorBrewer:圖形調色板

  • igraph:用于網絡分析和可視化

  • latticeExtra:lattice繪圖系統擴展包

  • sp:空間數據工具

數據轉換

以下R包用于將數據轉換為新的數據類型

  • dplyr:一個用于高效數據清理的R包。視頻學習課程
  • magrittr:一個高效的管道操作工具包。
  • tibble:高效的顯示表格數據的結構
  • stringr:一個字符串處理工具集
  • lubridate:用于處理日期時間數據
  • xts:xts是對時間序列數據(zoo)的一種擴展實現,提供了時間序列的操作接口。
  • data.table:用于快速處理大數據集
  • vtreat:一個對預測模型進行變量預處理的工具
  • stringi:一個快速字符串處理工具
  • Matrix:著名的稀疏矩陣包

統計建模與推斷

下述R包是統計建模最常用的幾個R包,其中的一些R包適用于多個主題。

  • car:提供了大量的增強版的擬合和評價回歸模型的函數。
  • Hmisc:提供各種用于數據分析的函數
  • multcomp:參數模型中的常見線性假設的同時檢驗和置信區間計算,包括線性、廣義線性、線性混合效應和生存模型。
  • pbkrtest用于線性混合效應模型的參數Bootstrap檢驗
  • MatrixModels:用于稠密矩陣和稀疏矩陣建模
  • mvtnorm:用于計算多元正態分布和t分布的概率,分位數,隨機偏差等
  • SparseM:用于稀疏矩陣的基本線性代數運算
  • lme4:利用C++矩陣庫 Eigen進行線性混合效應模型的計算。
  • broom:將統計模型結果整理成數據框形式
  • caret:一個用于解決分類和回歸問題的數據訓練綜合工具包
  • glmnet:通過極大懲罰似然來擬合廣義線性模型
  • gbm:用于實現隨機梯度提升算法
  • xgboost:全稱是eXtreme Gradient Boosting。是Gradient Boosting Machine的一個c++實現。目前已制作了xgboost工具的R語言接口。詳見統計之都的一篇介紹
  • randomForest:提供了用隨機森林做回歸和分類的函數
  • ranger:用于隨機森林算法的快速實現
  • h2o:H2O是0xdata的旗艦產品,是一款核心數據分析平臺。它的一部分是由R語言編寫的,另一部分是由Java和Python語言編寫的。用戶可以部署H2O的R程序安裝包,之后就可以在R語言環境下運行了。
  • ROCR:通過繪圖來可視化分類器的綜合性能。
  • pROC:用于可視化,平滑和對比ROC曲線

溝通交流

以下R包用于實現數據科學結果的自動化報告,以便于你跟人們進行溝通交流。

  • rmarkdown :用于創建可重復性報告和動態文檔
  • knitr:用于在PDF和HTML文檔中嵌入R代碼塊
  • flexdashboard:基于rmarkdown,可以輕松的創建儀表盤
  • bookdown:以R Markdown為基礎,用于創作書籍和長篇文檔
  • rticles:提供了一套R Markdown模板
  • tufte:用于實現Tufte講義風格的R Markdown模板
  • DT:用于創建交互式的數據表
  • pixiedust:用于自定義數據表的輸出
  • xtable:用于自定義數據表的輸出
  • highr:用于實現R代碼的LaTeX或HTML格式輸出
  • formatR:通過tidy_source函數格式化R代碼的輸出
  • yaml:用于實現R數據與YAML格式數據之間的通信。

自動化分析

以下R包用于創建自動化分析結果的數據科學產品:

  • shiny:一個使用R語言開發交互式web應用程序的工具。中文教程
    • shinydashboard:用于創建交互式儀表盤
  • shinythemes:給出了Shiny應用程序的常用風格主題
  • shinyAce:為Shiny應用程序開發者提供Ace代碼編輯器。
  • shinyjs:用于在Shiny應用程序中執行常見的JavaScript操作
  • miniUI:提供了一個UI小部件,用于在R命令行中集成交互式應用程序
  • shinyapps.io:為創建的Shiny應用程序提供托管服務
  • Shiny Server Open Source:為Shiny應用程序提供開源免費的服務器
  • Shiny Server Pro:為企業級用戶提供一個Shiny應用程序服務器
  • rsconnect:用于將Shiny應用程序部署到shinyapps.io
  • plumber:用于將R代碼轉化為一個web API
  • rmarkdown:用于創建可重復性報告和動態文檔
  • rstudioapi:用于安全地訪問RStudio IDE的API

程序開發

以下這些包主要用于開發自定義的R包:

  • RStudio Desktop IDE:R的IDE。大家都懂,不用解釋。
  • RStudio Server Open Source:開源免費的RStudio服務器
  • RStudio Server Professional:商業版RStudio服務器
  • devtools:一個讓開發R包變得簡單的工具集
  • packrat:創建項目的特定庫,用于處理包的版本問題,增強代碼重現能力。
  • drat:一個用于創建和使用備選R包庫的工具
  • testthat:單元測試,讓R包穩定、健壯,減少升級的痛苦。
  • roxygen2:通過注釋的方式,生成文檔,遠離Latex的煩惱。
  • purrr:一個用于 提供函數式編程方法的工具
  • profvis:用于可視化R代碼的性能分析數據
  • Rcpp:用于實現R與C++的無縫整合。詳見統計之都文章
  • R6:R6是R語言的一個面向對象的R包,可以更加高效的構建面向對象系統。
  • htmltools:用于生成HTML格式輸出
  • nloptr:提供了一個NLopt非線性優化庫的接口
  • minqa:一個二次近似的優化算法包
  • rngtools:一個用于處理隨機數生成器的實用工具
  • NMF:提供了一個執行非負矩陣分解的算法和框架
  • crayon:用于在輸出終端添加顏色
  • RJSONIO:rjson是一個R語言與json進行轉的包,是一個非常簡單的包,支持用 C類庫轉型和R語言本身轉型兩種方式。
  • jsonlite:用于實現R語言與json數據格式之間的轉化
  • RcppArmadillo:提供了一個Armadillo C++ Library(一種C++的線性代數庫)的接口

實驗數據

以下R包給出了案例實戰過程中可用的訓練數據集:

  • babynames:包含由美國社會保障局提供的三個數據集
  • neiss:2009-2014年期間提供給美國急診室的所有事故報告樣本數據
  • yrbss:美國疾病控制中心2009-2013年期間青年危險行為監測系統數據
  • hflights:
  • USAboundaries:2011年全年休斯頓機場的所有航班數據
  • rworldmap:國家邊界數據
  • usdanutrients:美國農業部營養數據庫
  • fueleconomy:美國環保署1984-2015年期間的燃油經濟數據
  • nasaweather:包含了一個覆蓋中美洲的非常粗糙的24*24格地理位置和大氣測量數據。
  • mexico-mortality:墨西哥死亡人數數據
  • data-movies和ggplotmovies:來自互聯網電影數據庫imdb.com的數據
  • pop-flows:2008年全美人口流動數據
  • data-housing-crisis:經過清洗后的2008美國房地產危機數據
  • gun-sales:紐約時報提供的有關槍支購買的每月背景調查統計分析數據
  • stationaRy:從成千上萬個全球站點收集到的每小時氣象數據
  • gapminder:摘自Gapminder的數據
  • janeaustenr:簡·奧斯丁小說全集數據

查看R的版本

sessionInfo() # 要加括號

如下所示:

 sessionInfo() # 要加括號

R version 3.4.0 (2017-04-21)

Platform: x86_64-w64-mingw32/x64 (64-bit)

Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:

[1] LC_COLLATE=Chinese (Simplified)_China.936  LC_CTYPE=Chinese (Simplified)_China.936   

[3] LC_MONETARY=Chinese (Simplified)_China.936 LC_NUMERIC=C                              

[5] LC_TIME=Chinese (Simplified)_China.936    

attached base packages:

[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:

[1] downloader_0.4 rafalib_1.0.0 

loaded via a namespace (and not attached):

[1] compiler_3.4.0     tools_3.4.0        RColorBrewer_1.1-2 digest_0.6.15

查看R語言的內置數據集data()

R的基本包中有一個叫datasets,里面全是示例數據集,供用戶練習用。同時也可以使用data()來查看所有已經成功加載的包的數據集:

Data sets in package ‘datasets’:

AirPassengers                         Monthly Airline Passenger Numbers 1949-1960

BJsales                               Sales Data with Leading Indicator

BJsales.lead (BJsales)                Sales Data with Leading Indicator

...

略

如果需要查看更完整的列表,包括已安裝的所有包的數據,可以使用下面代碼:

data(package = .packages(TRUE))

加載特定包中的數據集

如果想要訪問任意數據集里面的數據,可以使用data()函數,傳入數據集的名稱以及所在的包名(如果這個包已經被加載了,就可以不用packages="包名"這個以參數了),如下所示:

data("kidney", package = "survival")
head(kidney)

這個命令是調用survival這個包中的kidney這個數據集,如下所示:

data("kidney", package = "survival")
head(kidney)
  id time status age sex disease frail
1  1    8      1  28   1   Other   2.3
2  1   16      1  28   1   Other   2.3
3  2   23      1  48   2      GN   1.9
4  2   13      0  48   2      GN   1.9
5  3   22      1  32   1   Other   1.2
6  3   28      1  32   1   Other   1.2

參考資料

  1. http://www.xueqing.tv/cms/article/198
  2. http://blog.fens.me/
  3. 學習R.[美] Richard,Cotton 著劉軍 譯
  4. R 從安裝開始:BiocLite 到 BiocManager
  5. R語言編程指南.任坤 著,王婷,趙孟韜,王澤賢 譯
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在學習R的時候,R的包眾多,很多時候對于初學者會造成很大的困擾就是不知道用什么樣的包比較合適。我會在不斷使用...
    果果哥哥BBQ閱讀 16,110評論 0 62
  • 1.數據導入 以下R包主要用于數據導入和保存數據: feather:一種快速,輕量級的文件格式;在R和python...
    雨一流閱讀 1,305評論 0 9
  • Swift1> Swift和OC的區別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,135評論 1 32
  • 在上一節「R shiny基礎」交互式入門, 我們實現了簡單的用戶交互。這一篇將會在之前的基礎上,以對美國的人口普查...
    xuzhougeng閱讀 8,522評論 1 13
  • 無心的相遇 在莫名的瞬間 成了定格 韶光漫漫 一縷牽掛 顫微微搖晃在韶華的縫隙 是嬌弱里含著憂愁的吊蘭 盈滿的盛放...
    燕尾無聲閱讀 280評論 0 0