Основываясь на моем коде, кто-нибудь думает, что они могут сказать мне, что вызывает эту ошибку "аргументы подразумевают различное количество строк: 1, 0" в R? - PullRequest
0 голосов
/ 10 апреля 2019

Я пишу код, который берет данные микроспутника и выводит сводку данных, таких как количество аллелей, размер выборки, количество пропущенных данных и т. Д. Я получил их, но у меня проблемы с получением частот аллелей. Я получаю сообщение об ошибке

"Ошибка в data.frame (..., check.names = FALSE): аргументы подразумевают различное количество строк: 1, 0 "

на основе моего кода может кто-нибудь сказать мне, в чем проблема и как ее исправить.

Данные представляют собой файл Excel, который имеет 11 столбцов, но первый исключается, поскольку это не данные, используемые в вычислениях, оставляя мне 10 столбцов для работы. Существует пять локусов в диплоидном формате, поэтому по два столбца на локусы. Я приложил изображение того, на что похожи данные. Я должен сказать, что я начинающий пользователь R, поэтому, если мой код иногда груб или даже бессмысленен, пожалуйста, прости меня ... должен начать где-то.

Любой вклад приветствуется.

geno_data<-read.csv("Armadillo_only.csv")

OUT<-NULL


allele_summary<-function(x){
        num_alle<-colSums(!is.na(x[,-1]))
        tot_alle<-sum(num_alle)
        samp_size<-length(x[,1])
        na<-length(which(is.na(x[,-1])))
        zeros<-length(which(x[,-1]==0))
        missing_data<-sum(na,zeros)


        only_alleles<-(x[,-1])
    col_num<-ncol(only_alleles)

Это все одна функция, но вышеприведенная часть - это то, что мне нужно работать, когда она запускается как отдельная функция

loci<-(2*(unique(round((1:(col_num-2))/2)))+1)

for (i in loci){
    a<-c(only_alleles[,i],only_alleles[,i+1])
    a2<-as.data.frame(table(a))
    missing<-a2[which(a2[,1]==0),]
    a3<-a2[-which(a2[,1]==0),]
    a4<-cbind(a3,a3[,2]/sum(a3[,2]))
    output<-cbind(i,a4)

OUT <<- rbind(OUT,output)

} }

allele_summary (geno_data) Пример данных

...