2016-03-28 33 views
0

için bir sütundaki değerleri değiştirme if-else koşullarına göre sütun değerlerini değiştirmek istiyorum ve bunu yapmak için FOR döngüsünü kullanıyorum. Ben bu kodu kullanarak çalıştı aşağıdaki koşulDöngü için

ifelse(column > 0.5,1,0) 

uygulamak istediğiniz

m1 m2 m3 a1 a2 
0.5 0.7 0.2 10 20 
0.1 0 0.2 30 40 

ama onun değil çalışma: Veri aşağıda gösterilmiştir Ayrıca çift kullanarak çalıştı

for (k in 1:3){ 
    data$m[k] <- ifelse(data$m[k] > 0.5,1,0) 
    } 

köşeli parantez [[]], ancak bu da çalışmıyor. İyi çalışan bir liste için aynı mantığı kullandım, ancak bu durumda sütun adları dize ve kodun buna göre nasıl değiştirileceğinden emin değilim.

+1

'deneyin veri [] <- (data > 0,5) + 0'. Döngüleri düşünme. Öncelikle, önceden vektörlenmiş olanı kontrol edin. –

+0

@DavidArenburg: Tüm sütunları değiştirmeyeceğim, durumun sadece mi1-m3 sütunlarına uygulanmasını istiyorum. – Yuvaraj

+2

Daha sonra, sadece "veri [1: 3] <- (veri [1: 3]> .5) + 0" OR veri [paste0 ("m", 1: 3)] <- (veri [paste0 (" m ", 1: 3)]> .5) + 0 'sütun konumlarını kullanmak istemiyorsanız * \ sorudaki yeni gelişmeleri bekler * –

cevap

0

m<-data.frame(
    m1=c(0.5,0.1), 
    m2=c(0.7,0), 
    m3=c(0.2,0.2), 
    a1=c(10,30), 
    a2=c(20,40) 
) 

for(i in 1:3){ 
    m[,i]<-ifelse(m[,i]>0.5,1,0) 
} 

sonucudur ... ben bunu bekliyor düşünüyorum, körük kodu bakınız:

m1 m2 m3 a1 a2 
0 1 0 10 20 
0 0 0 30 40