2017-02-01 3 views
-2

У меня есть набор данных, содержащий пары много переменных/столбцов, например a1 и a2, b1 и b2 , c1 и c3 и т.д.Р: повторить для цикла, который использует две переменные в наборе данных для остальных пар переменных в наборе данных

Я написал цикл в R, который создает новую переменную a_new, используя обе колонки a1 и a2 (в частности, я использую if else функцию между цикл).

Я хочу сделать то же самое для остальных переменных/столбцов, создавая столбцы b_new, c_new и т.д. из b1 и b2, c1 и c2 и т.д. без написания 100 для петель, так что я, возможно, придется использовать один (или другой для цикла, который петли вокруг цикла for, который у меня уже есть?).

Может ли кто-нибудь помочь мне?

+0

Возможно, вы должны предоставить свой цикл 'for'. – LAP

+0

Покажите нам свой код –

+0

Точно, что такое правило, создающее 'a_new'? – snoram

ответ

0

Поскольку вы не приводите какой-либо пример кода, я буду утверждать, что вы просто добавляете один столбец в другой.

В этом случае вы можете:

#Dummy data  
DF=data.frame(replicate(10,sample(0:1,1000,rep=TRUE))) 

#For loop 
for(i in (which(seq(1:ncol(DF)) %% 2 == 1))){ 
DF[paste("new_",i,sep="")]=DF[i]+DF[i+1]} 

Это создаст новый столбец в пределах «DF» с результатом первого столбца в «DF» + второй колонке в «DF». Операция может измениться так, как вы хотите.

Как он использует ncol(DF), он будет регулировать размер стола, над которым вы работаете.

+0

Конечно, это мой код: для (я в seq_along (a1_new [I])) для (я в seq_along (a1_new)) { dataa $ a1_new [I] <-Если (is.na (a1 [ i]) == TRUE & is.na (a1 [i]) == TRUE) { a2 [i]} else {a1 [i]} } write.csv (dataa, "a_final.csv") Спасибо большое! – user7502433

+0

@ user7502433 для хорошего воспроизводимого примера вам необходимо предоставить блок данных или его часть и код; отредактируйте свой пост и добавьте всю информацию. Насколько я могу догадаться из информации, которую вы дали, мое решение работает, но вам нужно адаптировать свой код. Работайте над ним и помните, что люди в stackoverflow не любят писать конкретные коды для конкретных данных, потому что вы не знаете, как это сделать. – Cris

+0

Я получил его, большое спасибо за вашу помощь! И жаль! – user7502433