以下是引用vrooadk在2009-3-12 23:33:00的发言:
match(a$level,b$level)->tmp
a$no1<-ifelse(is.na(tmp),a$no1,b$no1[tmp])
match(a$level,c$level)->tmp1
a$no2<-ifelse(is.na(tmp1),a$no2,c$no2[tmp1])
a
谢谢!这个问题解决,不过还有一个白痴点的问题想请教一下:
a<-data.frame(no=c(1,2,2,4),lev=c("A","B","C","B"))
> a
no lev
1 1 A
2 2 B
3 2 C
4 4 B
我想将lev=B的,改为lev=D,但按下面的做法不行,要怎样才行?
如果是numeric的就能直接如下赋值,为什么character不能呢?
a$no[a$no==2]<-10
a$lev[a$lev=="B"]<-"D" #不行!
谢谢!