r - 如何计算满足条件的多个 .csv 文件中的行数,以便将它们绘制在 R 中的条形图上?
问题描述
我有一个包含许多 .csv 文件的文件夹,每个文件都包含来自测序的注释变体列表。我想绘制每个文件中体细胞变体数量的条形图 - 有一个 Origin 列,其值为“体细胞”或“生殖系”。
我已经能够通过使用以下代码计算每个文件中的行来绘制变体的总数:
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 循环来执行此操作:
- 阅读表格
- 添加体细胞变体
- 添加种系变体
这是一个启动器,其中许多变体存储在循环的外部变量中,然后循环只是将它们添加到从新文件读取的变量中。最后,假设您的表中有一个名为“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")
}
如果您想获得更准确的回复,请提供最少的信息来重现这种情况。希望我给了你一个大致的想法。最好的
推荐阅读
- python - 如果在 python 中没有争论我的函数被调用,如何得到 none?
- python - 在不更改数据顺序的情况下更改 pandas/matplotlib 线图的顺序
- shell - sed -i '' -e '/javaagent.jar/ s/$/ proxyPort=8080/' 此命令应仅在未注释该行时附加字符串
- typescript - 使用泛型基于输入的窄返回类型
- huawei-mobile-services - Ads kit 集成在 HMS Ads kit 中遇到 error 499 错误
- ios - Swift 包中的 XIB 文件 - 忽略约束
- c++ - C++ 使用 std::fill 删除分配运算符的类
- php - Laravel 在 90 天后更改日期上的状态
- google-apps-script - 在谷歌表格中使用过滤器/查询时自动 S# 列
- django - Viewset/Serializer 上的 DRF PUT 不会在模型实例上触发 post_save 信号