我有一个矩阵,其中包含一列不同的基因,以及-log(P-values)
每个基因的每个可能 SNP 的对应列。
所以矩阵有 3 列:Gene_lable
、 SNP 和minus_logpval
。我正在尝试编写一个代码来识别-log(P-value)
每个基因最高的 SNP。这是头部(数据):
SNP Gene_label minus_logpval
1 rs3934834 HES4/ENSG00000188290 14.1031
2 rs3766193 HES4/ENSG00000188290 7.0203
3 rs3766192 HES4/ENSG00000188290 10.7420
4 rs3766191 HES4/ENSG00000188290 10.4323
5 rs9442371 HES4/ENSG00000188290 10.2941
6 rs9442372 HES4/ENSG00000188290 8.4235
这是代码的开始:
for(i in 1:254360) {
max_pval = 0
if(data$Gene_label[i]==data$Gene_label[i+1]) {
x = array(NA, dim=c(0,2));
x[i] = data$minus_logpval[i];
x[i+1] = data$minus_logpval[i+1];
temp = max(x);
if (temp>max_pval) {
max_pval=temp
line = i
}
但由于某种原因,R 一直给我错误:Error in is.ordered(x) : argument "x" is missing, with no default.
我什至没有使用 is-ordered(x) 函数......我认为错误在于我初始化 x (应该是一个数组)的方式,但我没有不知道如何解决它。