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

  • adrianisen

    adrianisen

    25 Kasım 2009
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014