[问题类型]:
用gusb变换数字为character的时候,没办法成功
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
用gusb变换数为character的时候,当数字为10位数或以上会碰到问题
例如 现在有 1 2 3 14 15 ,想变成 B1 B2 B3 B14 B15
却都会变成 B1 B2 B3 B1B4 B1B5
[程式范例]:
> test<-sample(16,16,replace=T)
> lab<-paste("B", 1:16, sep = "")
> for ( i in 1:16){
+ t<-as.character(i)
+ test<-gsub(t,lab[i],test)
+ }
> test
[1] "B5" "B9" "B6" "B5" "B3" "B2" "B1B6" "B5" "B1B4" "B1B4"
"B4" "B4" "B1B6" "B3" "B2"
[16] "B1B3"
>
我知道用paste也可以做出想要的结果,只是想知道以上该如何修改才能有同结果
[关键字]:
gsub / 10位数
作者:
koai (可笑的自以为...)
2014-10-08 08:55:00Wush大是指 test<-gsub(paste("^",t,sep=""),lab[i],test)?
作者: obarisk (OSWALT) 2014-10-08 09:03:00
用paste就不用gsub了关于^,请使用regexp关键字gsub("^", "B", t)gsub("([0-9]*)", "B\\1", t)ptt 应该有 regexp 版