SORU
28 NİSAN 2011, PERŞEMBE


Veri çerçevesi, bir koşullu dayalı bir değer Replace (``) R İfadesi

R veri çerçevesi için aşağıda kodlanmış, *5 kez tüm değiştirmek için* istiyorum b ile görünür.

junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")

bu sağlar:

   nm val
1   A   a
2   B   b
3   C   c
4   D   d
5   A   e
6   B   f
7   C   g
8   D   h
9   A   i
10  B   j
11  C   k
12  D   l

Benim ilk girişimi gibi for if ifadeler kullanmak için:

for(i in junk$nm) if(i %in% "B") junk$nm <- "b"

ama gördüğünüz emin olduğum gibi, bu b 12 *TÜM değerleri değiştirir. Bu neden bunları yaptığını görüyorum ama sadece önemsiz bu durumda özgün değer B nerede$nm yerini almak için görünmüyor olabilir.

Teşekkür ederim.

NOT: R hala işe ait orijinal bir yaklaşım eğer mümkünse () almak için nasıl bilmek ister öğrenme faiz gsub ile ama sorunu çözmek için başardı

CEVAP
28 NİSAN 2011, PERŞEMBE


Kolay karakter nm dönüştürmek ve değişikliği yapın:

junk$nm <- as.character(junk$nm)
junk$nm[junk$nm == "B"] <- "b"

EDİT: Ve eğer gerçekten bir faktör olarak nm korumak gerekiyorsa, sonunda bu ekleyin:

junk$nm <- as.factor(junk$nm)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
R

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobinire

    bobinire

    24 EYLÜL 2006
  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006