数据 I 还有癌症患者(case_totals)和非癌症患者(control_totals)的总数,在这种情况下分别为 100 和 1000。
Variant Cancer IBD AKI CKD CCF IHD
A1 0 5 4 0 0 4
A2 0 8 5 9 0 7
A3 20 9 6 7 0 3
B5 7 2 0 6 5 4
K7 9 1 8 4 2 5
L9 0 0 6 3 3 1
期望的结果 - 两个表: 表 1:
Variant case_total not_seen_in_cases_total control_total not_seen_in_control_total
A1 0 100 13 987
A2 0 100 25 975
A3 20 80 25 975
B5 7 93 17 983
K7 9 91 20 980
L9 0 100 13 987
表2:
case_total_in_gene not_seen_in_gene_cases control_total_in_gene control_total_not_in_gene
36 64 113 887
然后,我将在两个表上运行一个渔民,以获得我可以做的每个变体和每个基因的 p.value。
我的问题是我有多个这样的数据集,并且每个输入列的顺序都不同。目前我一直在使用:
ncol(dt) #to get the total number of columns as in reality the table is very large
which(colnames(dt)=='Cancer') #get the index column
dt$control_total <- (rowSums(dt[,2:7])) - rowSums(dt[,2]) #get a control totals per row column
然后对 dt 进行子集化,并使用减法添加其他列,例如dt$not_seen_in_control_total <- 1000 - dt$control_total
这不适用于移动列索引,我想理想地使用 commandArgs 在数百个文件中运行它。
最终,我如何引用一个始终具有相同名称但在 RowSums 等函数中位于不同位置的列?
非常感谢