r - 如何在数据框列表中找到常用字符?
问题描述
我在一个列表中有大约 70 个数据框,每个数据框都有一个名为 SNP 的列。我想找到所有数据帧中存在的常见 SNP。这是我使用的代码:
setwd("~")
library(data.table)
files <- list.files()
dflist <- list()
for(i in 1:length(files)){
dflist[[i]] <- fread(files[i])
}
map(dflist, ~.$SNP) %>%
reduce(intersect)
但是,这会返回以下消息:
character(0)
list(structure(list(`10:103391446` = c("10:115562764:TTTC_",
"10:115562765:TTC_T", "10:14188623_CCTGA_C", "10:15988900:G_GGT"
)), row.names = c(NA, -4L), class = c("data.table", "data.frame"
)), structure(list(SNP = c("rs34394051",
"rs11121177", "rs10799615", "rs590013")), row.names = c(NA, -4L
), class = c("data.table", "data.frame")),
structure(list(SNP = c("rs34394051", "rs11121177", "rs10799615",
"rs590013")), row.names = c(NA, -4L), class = c("data.table",
"data.frame")))
你能帮忙吗?
解决方案
您的问题似乎有两个方面:
SNP
您的其中一个框架作为列名丢失。这通常会导致问题:setdiff(mtcars$QUUX, mtcars$cyl) # NULL
这不难解决(
names(dflist[[1]]) <- "SNP"
),但不能解决所有问题。您的第一帧具有完全不同的数据。当我跳过第一帧时,它可以工作。
map(dflist[-1], ~.$SNP) %>% reduce(intersect) # [1] "rs34394051" "rs11121177" "rs10799615" "rs590013"
推荐阅读
- java - mvn exec:java 在 Jetbrains TeamCity 上执行时抛出 ClassNotFoundException
- javascript - onkeyup 无法比较输入的javascript
- python - Plotly Dash 中心 dcc.Input 文本字段
- excel - 如果水平动态,如何在每页顶部放置表格标题
- javascript - FullCalendar MVC5 JSON 中未加载事件
- python - 如何使用 Scrapy 创建用于 parse 和 parse_item 的中间件?
- python - 在 Python 中更好地去除线条?
- c++ - 我发现错误的结果是由于浮点精度吗?
- javascript - 背景图像不会出现在反应音频播放器中
- python - 在换行符之前用引号括起来