我有一个文件夹,里面有许多.csv文件,每个文件都包含来自测序的带注释变体的列表。我想绘制一个条形图,显示每个文件中体细胞变体的数量--其中有一个Origin列,其值为“bar”或"germline“。
我已经能够通过使用以下代码计算每个文件中的行数来绘制变量的总数:
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")虽然这可以为每个文件的变体总数创建一个条形图,但我不确定在哪里可以添加一个条件,指定只计算满足“体细胞”条件的行数。
任何建议都将不胜感激。
发布于 2020-07-09 23:08:13
我将使用一个for循环来完成此操作,该循环执行以下步骤:
这里是一个启动器,其中变量的数量存储在循环的外部变量中,然后循环只是将它们添加到新文件读取的变量中。最后,假设您的表中有一个名为"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")
}如果你想得到更准确的答复,请提供最少的信息来重现这种情况。希望我给了你一个大概的概念。最好的
https://stackoverflow.com/questions/62816441
复制相似问题