2015-12-16 4 views
0

У меня есть 136 кадров данных с кратностью и двумя переменными: compl001 - compl136. Я пытался зациклиться между ними, не повезло, так что далеко. Я на самом деле пытаюсь сделать сравнения в каждом кадре данных. Существует значение, заданное как «Há» или «Não Há». Основная проблема, с которой я сталкиваюсь, заключается в том, что когда я использую вставку, чтобы посмотреть betweem data.frames, она является подставкой как символ, а не предыдущий data.frame в моей среде.Кадры данных Looping R

Это что-то вроде этого:

Min1  Min2 
Há  Há 
Não Há Há 
Não Há Não Há 

Моя цель состоит в том, чтобы выбрать compl1 проход корыто всю длину его, и если compl001$Min1 = compl001$Min2 то прилавке соглашение увеличивается на 1./

concc = 0 
discc = 0 

for (i in 1:136){ 
     ##Chosing the Min1 and Min2 names (it changes between data.frames but here it reveals NULL because understand paste as character) 
    assign('parsel' ,colnames<-(paste0("compl00", i))) 

    for (j in 1:length(paste0("compl00", i))){ 

     if ((assign("a",(paste0("compl00",i,'$',parsel[1],'[',j,']'))))==(assign('b',paste0("compl00",i,'$',parsel[2],'[',j+1,']')))) 
     {concc = concc + 1} 
    else 
     {discc = discc + 1} 
    } 
} 
+3

Если все данные имеют одинаковые две переменные, не было бы проще объединить их все вместе, а затем выполнить анализ? Думаю, размер может быть проблемой здесь. Не уверен, как выглядят ваши данные. –

+3

Возможно, было бы проще поместить все ваши данные в список и петлю по самим фреймам. –

ответ

2

Так что я создал список данных для имитации ваших данных на основе того, что вы описали.

dfs<-lapply(seq(1,136), 
     function(x) data.frame(Min1=sample(c("Ha", "Nao Ha"), replace = TRUE,size = 50), 
            Min2=sample(c("Ha", "Nao Ha"),replace = TRUE,size = 50))) 

Тогда результаты могут быть накинут с помощью lapply и быстро сведены в таблицу с table() Чтобы получить только те, в согласии просуммировать ячейки 1,1 и 2,2.

results<-lapply(dfs, function(x) { 
       tmp<-table(x) 
       sum(tmp[1,1], tmp[2,2]) 
       }) 

Надеюсь, это поможет.

+0

Это все еще какая-то загадка, как она работает, но это так. Спасибо, брат! –

Смежные вопросы