【发布时间】:2021-03-28 21:04:32
【问题描述】:
我正在尝试使用 dplyr 和 left_join 中的管道函数来清理一些元数据。设置变量....
library(openxlsx)
library(tidyverse)
mdat <- read.xlsx("https://journals.plos.org/plospathogens/article/file?type=supplementary&id=info:doi/10.1371/journal.ppat.1005511.s011",
startRow = 3, fillMergedCells = TRUE) %>%
mutate(sample=Accession.Number)
dge$samples$sample=
[1] "SRR1346026" "SRR1346027" "SRR1346028" "SRR1346029" "SRR1346030" "SRR1346031" "SRR1346032" "SRR1346033" "SRR1346034"
[10] "SRR1346035" "SRR1346036" "SRR1346037" "SRR1346038" "SRR1346039" "SRR1346040" "SRR1346041" "SRR1346042" "SRR1346043"
[19] "SRR1346044" "SRR1346045" "SRR1346046" "SRR1346047" "SRR1346049" "SRR1346048" "SRR1346050" "SRR1346051" "SRR1346052"
我正在尝试输入 dge$samples$sample,它是一个字符类。它需要成为一个名为 sample 的列的数据框,以便我可以通过左连接将 mdat 与其合并,以删除我没有样本的所有元数据。如果你运行 dim(mdat) 你会发现它是 35 x 15,我想把它减少到我实际有数据的 19 个样本,这些在 dge$samples$sample 列表中给出。我正在尝试使用以下代码首先将 dge$samples$sample 转换为一个数据框,其中有一列名为 sample 用于连接两者,并基本上删除了我不感兴趣的所有元数据。到目前为止,下面的代码是我的进步,但我认为我无法理解管道的工作原理。
test = data.frame(dge$samples$sample) %>%
colnames(.) = c("sample") %>%
left_join(
.,
mdat,
by = sample,
copy = FALSE,
suffix = c(".x", ".y"),
keep = FALSE,
na_matches = c("na", "never")
)
【问题讨论】: