由於生信論文思路和期刊更新迭代較快,在生信論文百篇基礎上(芒果生信論文百篇 · 套路+寫作+期刊),結合一年內發表的論文,我們從生信技能、生信思路和期刊選擇角度,實戰分析生信策略。純生信操作適合入門,高級的生信分析和數據挖掘仍需要R語言實操,因此,我們以《R語言實戰》和《R數據科學》兩套經典教程為基礎,推出【R數據科學】系列。願與果友們一起學習,共同進步!
數據分析指用適當的統計方法對收集的數據進行分析,並提取有用信息、詳細研究和概括總結的過程。這一過程也是質量管理體系的支持過程。在實用中,數據分析可幫助人們作出判斷,以便採取適當行動。數據分析的數學基礎在20世紀早期就已確立,但直到計算機的出現才使得實際操作成為可能,並得以推廣。數據分析是數學與計算機科學相結合的產物。這裡,我們藉助大佬R語言數據分析的基本流程,分享R數據分析的基本流程。
『01』導入數據
readr 主要的函數如下:
install.package("readr")install.package("tidyverse")
library(readr)
path <- "directory_path/filename.csv" data <- read_csv(path)
data <- read_tsv(path)
data <- read_delim(path, delim = "|")
需要對Excel進行讀入時,推薦readxl包中的函數。readxl包也是tidyverse的核心包之一。可以直接安裝readxl或者tidyverse。library(readxl)path <- "path/data.xlsx"data <- read_excel(path = path, sheet = "sheet_name")
其他各種數據類型,大家做個了解,大部分情況都不會用到。library(haven)data <- read_sav("file_name.sav")data <- read_dta("file_name.dta")library(rvest)url <- c("http://www.webpagename.com")web_page <- read_html(url)web_page_table <- html_nodes(web_page, "table")data <- html_table(web_page_table, fill = TRUE)library(jsonlite)r_bloggers_data <- fromJSON("~/Desktop/r-bloggers.json")『02』基本數據結構
基礎計算。這一部分其實很簡單,跟常見的數據公式基本一樣。5+6 89-28 7000*10 25/5 2^20 exp(8) 37 %% 2邏輯運算符
主要是判斷等於,不等於,大於,小於,大於等於,小於等於,且和或的關係。
#use double equality symbols to check for equality since "=" is reserved for
1 == 1 1 != 1 10 > 8 10 >= 8 10 < 8 5 <= 5 (1 > 3) & (10 > 3) (1 > 3) | (10 > 3) !x isTRUE(x) 基本匯總統計sum(x) mean(x) median(x) min(x) max(x)數據結構
向量:一維數組
Factors :分類變量
矩陣:按列和行排列的二維向量數組,所有數據元素通常屬於同一類。
數據框:也是一個二維數組,但列可以是不同的類。
Tibbles =數據框的增強版本,具有改進的顯示特性。隨著tidyverse在過去幾年中變得更加突出,Tibbles 越來越受歡迎。
列表:任意對象的列表,比數據框更靈活,但使用起來不太直觀。列表元素可以由多種不同的數據類型組成,包括統計測試的輸出甚至整個數據框。
Arrays:多於 2 維的矩陣
d <- c(1, 3, 4, 5, 6) ##向量
d <- factor(x, levels = c(1, 2, 3), labels = c("one", "two", "three"), ordered = TRUE) ##因子
d <- matrix(data = c(1:40), nrow = 20, ncol = 2) ## 矩陣
d <- data.frame( name=c("李明", "張聰", "王建"), age=c(30, 35, 28), height=c(180, 162, 175), stringsAsFactors=FALSE)print(d)
## name age height## 1 李明 30 180## 2 張聰 35 162## 3 王建 28 175隨機抽樣sample(1:40, 6, replace=F) set.seed(seed = 934)
random.sample <- rnorm(1000, mean = 100, sd = 1)
seq(from = 1, to = 7, by = 1)
rep(1:10, each = 2)
rep(seq(1, 7, 1), each = 3)芒果總結:這部分總結主要是數據的載入或導入、數據類型和簡單分析(邏輯運算和隨機抽樣)。內容非常基礎,非常適合入門,但是需要結合統計思維和數據思維,更重要的是,我們需要實際操作,把R用起來。加油!