繁体   English   中英

如何计算满足条件的多个.csv 文件中的行数,以便在 R 的条形图上对它们进行 plot?

[英]How can I count the number of rows in multiple .csv files that meet a condition in order to plot them on a bar chart in R?

我有一个文件夹,其中包含许多.csv 文件,每个文件都包含来自测序的注释变体列表。 我想 plot 制作每个文件中体细胞变体数量的条形图 - 有一个值为“体细胞”或“生殖系”的 Origin 列。

通过使用以下代码计算每个文件中的行,我已经能够 plot 变体总数:

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")

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

任何建议将不胜感激。

我将使用执行以下步骤的 for 循环来执行此操作:

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

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


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")
  
}

如果您想获得更准确的回复,请提供最少的信息来重现这种情况。 希望我给了你一个大致的想法。 最好的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM