R語言數據操作

列合并

cbind(a,b)
#根據列進行合并,即疊加所有列,a列的矩陣與b列的矩陣cbind()最后變成a+b列,合并前提:cbind(a, b)中矩陣a、b的行數必需相符
merge(a,b,by='colname')
#以某一列為基準對a,b進行合并

行合并

rbind(a,b)
#根據行進行合并,就是行的疊加,a行的矩陣與b行的矩陣rbind()最后變成a+b行,合并前提:rbind(a, b)中矩陣a、b的列數必需相符

數據排序

match(x, table, nomatch = NA_integer_, incomparables = NULL);
#匹配兩個向量,返回向量x中的元素在table中出現的位置;

兩數據的交集,并集,補集

交集

# 兩個數值向量取交集
intersect(x=1:4, y = 2:6)
# [1] 2 3 4

# 兩個字符向量取交集
intersect(x=letters[1:4], y = letters[2:6])
# [1] "b" "c" "d"

# 混合向量
intersect(x=c("a", "b", "c", 4), y = c("a", 2, 3, 4))
[1] "a" "4"

并集

# 兩個數值向量取并集
union(x=1:4, y = 2:6)
# [1] 1 2 3 4 5 6

# 兩個字符向量取并集
union(x=letters[1:4], y = letters[2:6])
# [1] "a" "b" "c" "d" "e" "f"

# 混合向量
union(x=c("a", "b", "c", 4), y = c("a", 2, 3, 4))
[1] "a" "b" "c" "4" "2" "3"

判斷不同

x = 1:4
y = 2:6
# 找x中不同于y的元素
setdiff(x, y)
# [1] 1
# 找y中不同于x的元素
setdiff(y, x)
# [1] 5 6

判斷是否相同

identical(a,b)
#返回邏輯型向量,相同返回True,不相同返回False
stopifnot(identical(a,b))
#不相同時會有紅字

行名重復解決辦法

處理一些轉錄組數據時,經常會發(fā)現有的基因名是相同的,并不可以作為行名,這時就需要對重復的基因名進行操作

data=avereps(data)
#對行取平均值,屬于edgeR包
uniquifyFeatureNames(
  ID=paste0("ENSG0000000", 1:5),
  names=c("A", NA, "B", "C", "A")
)
#屬于scater包,對重復的基因名采取前后疊加的方式獲得不同的基因名,保證最大程度的數據保留

數據類型轉換

dimnames=list(rownames(rt),colnames(rt))
data=matrix(as.numeric(as.matrix(rt)),nrow=nrow(rt),dimnames=dimnames)
#或者使用apply函數
apply(rt,1,as.numeric)

字符串操作

library(stringr)
rownames(exprSet) = str_split(rownames(exprSet),'[.]',simplify = T)[,1]
#常見的去除Ensembl基因名的版本號
group_list=ifelse(as.numeric(substr(colnames(exp),14,15)) < 10,'tumor','normal')
#常見的TCGA按照01和11劃分癌癥組織和癌旁組織

正則表達式的應用
\b 單詞的開始或者結尾
. 匹配除了換行符之外的任意一個字符
\d 匹配一個數字,與[0-9]同理
\s 匹配任意的空白字符,包括空格,制表符,換行符
\w匹配一個字母,包括字符,下劃線,漢字等
^ 匹配字符串的開頭
$ 匹配字符串的結尾
? 指定內容重復0次或者1次
+ 指定內容重復1次至多次
* 指定內容重復0次至多次
{}指定前面內容重復的次數
[]匹配其中的任意一個字符(0-9,a-c)
()給字符分組,用\1,\2匹配

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 6,039評論 0 9
  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,744評論 0 5
  • 正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位,可能是字母,數字,標點符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,300評論 0 9
  • Python中的正則表達式(re) import rere.match #從開始位置開始匹配,如果開頭沒有則無re...
    BigJeffWang閱讀 7,619評論 0 99
  • sad……sad……sad……
    ff188ec37c22閱讀 184評論 0 1

友情鏈接更多精彩內容