您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關R語言指定列取交集后合并多個數據集的簡便方法是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
之前錄制過一期視頻介紹過這個內容,他的基本需求就是:他有5份數據集,每一份數據集都是每行是一個基因,每列是一個樣本,值是對應這個基因的表達量。他想將5個數據集中的共有基因找出來,然后5個數據集按共有的基因合并。
我的思路是
那期內容有人留言了簡便方法,很短的代碼就實現了這個目的。我將代碼記錄在這篇推文里
因為5份數據集以csv格式存儲,首先就是獲得存儲路徑下所有的csv格式文件的文件名,用到的命令是
files<-dir(path = "example_data/merge_data/",
full.names = T,
pattern = ".csv")
用到的函數是dir()
path
參數是數據文件存儲的路徑
full.names
參數如果設置為TRUE,則返回文件的完整路徑,如果設置的為FALSE則只返回文件名。
相對路徑和絕對路徑是很重要的概念,這個一定要搞明白
pattern
參數指定文件的后綴名
需要借助tidyverse
這個包,用到的是map()
函數
library(tidyverse)
df<-map(files,read.csv)
class(df)
df
是一個列表,5份數據分別以數據框的格式存儲在其中
直接一行命令搞定
df1<-reduce(df,inner_join)
df1就是我們想要的結果
達成這個目的最終總共才用到了4行代碼,太方便了。
之前和一位同學討論的時候他也提到了tidyverse整理數據,但是自己平時用到的數據格式還算整齊,基本上用數據框的一些基本操作就可以達到目的了。也就沒有學tidyverse這個包的內容,看來得抽時間好好學習一下了。
看完上述內容,你們對R語言指定列取交集后合并多個數據集的簡便方法是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。