En essayant de diviser une chaîne sur "." et créez des colonnes supplémentaires avec les deux chaînes avant et après ".".appliquer strsplit rowwise
tes<-c("1.abc","2.di","3.lik")
dat<-c(5,3,2)
h<-data.frame(tes,dat)
h$num<-substr(h$tes,1,1)
h$prim<-unlist(strsplit(as.character(h$tes),"\\."))[2]
h$prim<-sapply(h$tes,unlist(strsplit(as.character(h$tes),"\\."))[2])
comme h$prim
à Id contenir "abc", "di", "lik" .. Mais je ne suis pas en mesure de comprendre. Je suppose que strsplit
n'est pas vectorisé, mais alors je pensais que la version sapply
aurait dû fonctionner. Cependant, je suppose qu'il devrait être :-) facile
Cordialement, // M
Allright .. Cependant pas aussi facile que je pensais .. Qu'est-ce que ce " [["chose? – Misha
@Misha: la chose difficile à propos de strsplit est qu'il renvoie une liste. Cette "[[" chose est la fonction à extraire de cette liste. 2 est l'argument de cette fonction, ce qui signifie qu'elle prend le second élément des listes renvoyées par strsplit. Voir aussi? "[[" Dans R. et thx @rcs, c'est intelligent! –
C'est un opérateur d'indexation. "[[" peut être utilisé pour sélectionner un seul élément en supprimant des noms, voir '? Extract'. Vous pouvez également utiliser "[". – rcs