首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算满足某个条件的多个.csv文件中的行数,以便将它们绘制在R中的条形图上?

如何计算满足某个条件的多个.csv文件中的行数,以便将它们绘制在R中的条形图上?
EN

Stack Overflow用户
提问于 2020-07-09 21:51:35
回答 1查看 169关注 0票数 0

我有一个文件夹,里面有许多.csv文件,每个文件都包含来自测序的带注释变体的列表。我想绘制一个条形图,显示每个文件中体细胞变体的数量--其中有一个Origin列,其值为“bar”或"germline“。

我已经能够通过使用以下代码计算每个文件中的行数来绘制变量的总数:

代码语言:javascript
复制
combined_data <- list.files(pattern = ".csv")

numvar <- lapply(X = combined_data, FUN = function(x) {
  length(count.fields(x, skip = 1))
})

var <- do.call(rbind,numvar)

varn <- c(as.numeric(var))

names <- c(1:41)

table <- data.frame(names, varn)

ggplot(data=table, aes(x=names, y=varn)) + geom_bar(stat="identity")

虽然这可以为每个文件的变体总数创建一个条形图,但我不确定在哪里可以添加一个条件,指定只计算满足“体细胞”条件的行数。

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-07-09 23:08:13

我将使用一个for循环来完成此操作,该循环执行以下步骤:

  1. 读取表格
  2. 添加体细胞变体
  3. 添加种系变体

这里是一个启动器,其中变量的数量存储在循环的外部变量中,然后循环只是将它们添加到新文件读取的变量中。最后,假设您的表中有一个名为"variant.class“的列,变量将存储变量的总数

代码语言:javascript
复制
fils <- list.files(pattern = ".csv")

som.vars.n <- 0
germline.vars.n <- 0

for(fil in fils){
  fil.tab <- read.csv(fil)
  som.vars.n <- som.vars.n + sum(fil.tab$variant.class == "somatic")
  germline.vars.n <- germline.vars.n + sum(fil.tab$variant.class == "germline")
  
}

如果你想得到更准确的答复,请提供最少的信息来重现这种情况。希望我给了你一个大概的概念。最好的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62816441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档