《實習日記》| ​7月21日 R語言學習筆記——tidyr

2021-02-20 想成為大佬的生物狗
7月21日R語言學習筆記——tidyr

7月21日R語言學習筆記——tidyr一、數據清理扁變長長變扁二、分割和合併原始數據分割合併三、處理NA原始數據1.去掉含有NA的行,可以選擇只根據某一列來去除2.替換NA3.用上一行的值填充NA

一、數據清理
rm(list = ls())
options(stringsAsFactors = F)
if(!require(tidyr))install.packages("tidyr")

## Loading required package: tidyr

library(tidyr)
test <- data.frame(geneid = paste0("gene",1:4),
                sample1 = c(1,4,7,10),
                sample2 = c(2,5,0.8,11),
                sample3 = c(0.3,6,9,12))
test
##   geneid sample1 sample2 sample3
## 1  gene1       1     2.0     0.3
## 2  gene2       4     5.0     6.0
## 3  gene3       7     0.8     9.0
## 4  gene4      10    11.0    12.0

扁變長
test_gather <- gather(data = test,
                   key = sample_nm,
                   value = exp,
                   - geneid)
               #key指哪一列形成列名
               #value指哪一列為內容
head(test_gather)
##   geneid sample_nm exp
## 1  gene1   sample1   1
## 2  gene2   sample1   4
## 3  gene3   sample1   7
## 4  gene4   sample1  10
## 5  gene1   sample2   2
## 6  gene2   sample2   5


長變扁
test_re <- spread(data = test_gather,
               key = sample_nm,
               value = exp)
head(test_re)
##   geneid sample1 sample2 sample3
## 1  gene1       1     2.0     0.3
## 2  gene2       4     5.0     6.0
## 3  gene3       7     0.8     9.0
## 4  gene4      10    11.0    12.0


二、分割和合併原始數據
test <- data.frame(x = c( "a,b", "a,d", "b,c"));test
##     x
## 1 a,b
## 2 a,d
## 3 b,c

分割
test_seprate <- separate(test,x, c("X", "Y"),sep = ",");test_seprate
##   X Y
## 1 a b
## 2 a d
## 3 b c
#x 要分的列的列名
#分成的兩列的列名 c("X", "Y")
#sep = "," 分隔符是什麼

合併
test_re <- unite(test_seprate,"x",X,Y,sep = ",");test_re  
##     x
## 1 a,b
## 2 a,d
## 3 b,c


三、處理NA原始數據
X<-data.frame(X1 = LETTERS[1:5],X2 = 1:5)
X[2,2] <- NA
X[4,1] <- NA;X
##     X1 X2
## 1    A  1
## 2    B NA
## 3    C  3
## 4 <NA>  4
## 5    E  5


1.去掉含有NA的行,可以選擇只根據某一列來去除
na.omit(X)#去除所有含有缺失值的行
> X1 X2
> 1 A 1
> 3 C 3
> 5 E 5


drop_na(X)
##   X1 X2
## 1 A 1
## 2 C 3
## 3 E 5

drop_na(X,X1)
##   X1 X2
## 1 A 1
## 2 B NA
## 3 C 3
## 4 E 5

drop_na(X,X2)
##     X1 X2
## 1   A 1
## 2   C 3
## 3 <NA> 4
## 4   E 5


2.替換NA
replace_na(X$X2,0)#替換第二列的缺失值為0
## [1] 1 0 3 4 5


3.用上一行的值填充NA
X
##     X1 X2
## 1   A 1
## 2   B NA
## 3   C 3
## 4 <NA> 4
## 5   E 5

fill(X,X2)
##     X1 X2
## 1   A 1
## 2   B 1
## 3   C 3
## 4 <NA> 4
## 5   E 5


相關焦點

  • 【R學習筆記】- 數據整形 - dplyr and tidyr
    21 0.002744      0.019208Gather columns into rows:library(tidyr)testdata2 <- gather(testdata_tbl_df, "taxon", "n", c(2,5))## Warning in if (!
  • 《實習日記》| 7月20日 R語言筆記——dplyr
    7月20日R語言筆記——dplyr7月20日R語言筆記——dplyr五個基礎函數1.mutate(),新增列2.select
  • R語言 | 數據操作tidyr包
    [更新~]Python網絡爬蟲與文本數據分析tidyr包
  • 【數據整理】R用tidyr包進行數據操作
    tidyr包中有一樣最好的就是你可以只把已經確認好的列結合在一起而其它的列可以原封不動。2016-01-07   19  12     43     r8  2016-01-08   12  35      6     i9  2016-01-09   11   7     38     e10 2016-01-10    1  14     21     b11 2016-01-11    3
  • dplyr和tidyr簡介|數據處理
    數據處理兩大利器:dplyr和tidyr1 dplyr 簡介dplyr是Hadley Wickham
  • 寫給零基礎同學的R語言教程第三篇-神奇R包tidyr
    寫在前面:前兩篇:寫給零基礎同學的R和Rstudio教程寫給零基礎同學的R語言第二篇教程-數據類型獲取示例數據:公眾號[生信星球]留言回復"tidyr示例數據在對包有了一定的了解後,小抄是一個很好的學習操作指南,但是對於新手來說,很有可能完全看不懂。今天的教程有一部分參照了小抄,並作出了通俗的解釋。相信跟著教程走下去,就可以學個七七八八,跟著練練,然後自己研究一下小抄,一個R包就學個差不多啦。
  • 30 天學會R DAY 15:tidyr包,數據整理另外一個利器
    第15天  tidyr包,R語言數據整理又一利器tidyr包 用來處理寬數據和長數據,用來進行字符串變量的拆分和合併
  • R語言學習指南(3) tidyverse的基礎使用
    tidyverse是為數據科學設計的R軟體包,它包含(ggplot2、dplyr、tidyr、stringr、magrittr、tibble)等一系列熱門軟體包,學好tidyverse的使用可也讓你站上另一個高度,從而高效的處理數據,因此本文檔不僅僅做一些案例介紹,而是希望以較為正確的學習方法來介紹R語言,使大家少走彎路,快速入門掌握R語言
  • 超級乾貨 :手把手教你學習R語言(附資源連結)
    本文為帶大家了解R語言以及分段式的步驟教程!人們學習R語言時普遍存在缺乏系統學習方法的問題。學習者不知道從哪開始,如何進行,選擇什麼學習資源。雖然網絡上有許多不錯的免費學習資源,然而它們多過了頭,反而會讓人挑花了眼。為了構建R語言學習方法,我們在Vidhya和DataCamp中選一組綜合資源,幫您從頭學習R語言。
  • 【數據管理】Tidyverse:R 語言學習之旅的新起點
    學習R語言的傳統路徑(base R first)多是從變量類型、數據結構、流程控制、循環與自定義函數,也就是以R程式設計作為起點,接著依照數據處理、視覺化、統計與機器學習等應用偏好延續下一個學習的旅程;由tidyverse
  • 獨家 | 手把手教你學習R語言(附資源連結)
    本文為帶大家了解R語言以及分段式的步驟教程!人們學習R語言時普遍存在缺乏系統學習方法的問題。學習者不知道從哪開始,如何進行,選擇什麼學習資源。雖然網絡上有許多不錯的免費學習資源,然而它們多過了頭,反而會讓人挑花了眼。為了構建R語言學習方法,我們在Vidhya和DataCamp中選一組綜合資源,幫您從頭學習R語言。
  • 【好書共享】《R for Data Science》的中譯版
    這本書原版就是開源的(網址:http://r4ds.had.co.nz/),但是中文看得更快,學R語言一定要買一本紙質書放在案頭,多多翻閱。R for Data Science關於這本書這本書將教我們如何用R來做數據科學:學習如何將自己的數據導入R中,把它變成最有用的結構,轉換,可視化並對數據進行建模。
  • Tidy時代R語言學習的一些ABC
    最初的想法,是把這個公眾號作為一個「筆記本」,記錄一下自己工作中用到的新工具、解決的小問題或者論文筆記什麼的。當然,寫著寫著,不自覺地還是變成了寫教程。畢竟,多年教師的經歷,「寫教案」已經成為自己整理知識的一種習慣。那麼,以後主要就來寫教程吧。
  • R語言 | 數據操作dplyr包
    [更新~] Python網絡爬蟲與文本數據分析公眾號只帶著Python字眼,卻分享著R語言,不務正業,任性了~dplyr簡介dplyr是R語言的數據分析包,很像python中的pandas,能對dataframe
  • 跟《小屁孩日記·英語學習筆記》學地道美語
    你不可不知的《小屁孩日記》《小屁孩日記》是一本漫畫與塗鴉加上文字說明的另類日記。主人公格雷是一個剛上初中的小屁孩。《小屁孩日記》迄今已被翻譯成43種語言,來自世界各地的小夥伴們幾乎都能在自己國家的書店裡找到這本書,銷量已達1億1千5百萬冊。地道美語輕鬆學《小屁孩日記·英語學習筆記》是以暢銷系列小說《小屁孩日記》的內容為藍本開發的新版本。在原有雙語版的基礎上改動版式,以蝴蝶版的形式使中英雙語的內容對照呈現在讀者面前,同時加入美語習語、俚語的解析與文化習俗概況等內容。
  • R語言可視化學習筆記之添加p-value和顯著性標記
    我們將根據患者的分組來繪製DEPDC1基因的表達譜,看不同組之間是否存在顯著性的差異,我們可以在7組之間進行比較,但是這樣的話組間比較的組合就太多了,因此我們可以將7組中每一組與全部平均值進行比較SessioninfosessionInfo()## R version 3.4.0 (2017-04-21)## Platform: x86_64-w64-mingw32/x64 (64-bit
  • R語言的數據管理
    這部分內容為我學習《R語言實戰》中數據管理的部分所做的筆記。
  • R語言學習筆記之相關性矩陣分析及其可視化
    導入數據data(mtcars)#加載數據集mydata <- mtcars[, c(1,3,4,5,6,7)]head(mydata, 6)#查看數據前6行library(Hmisc)#加載包res2 <- rcorr(as.matrix(mydata))res2#可以用res2$r、res2$P來提取相關係數以及顯著性p-valueres2$r
  • 2017大學生工程管理實習日記15篇 工程管理實習日記怎麼寫
    工程管理專業學生實習會發生什麼事情呢?有哪些工作呢?下面是工程管理實習日記15篇,歡迎閱讀。  工程管理實習日記  日記一7月15日晴  今天第一天到工地,主要了解了一些工地的基本情況,我先熟悉了工程概況,項目經理給我介紹項目技術負責人等項目管理人員。
  • 我最常用的日記 / 學習筆記 / 備忘軟體
    上次分享了我的周計劃本使用方法,今天繼續聊聊我常用的學習筆記/備忘錄/日記軟體。