|
| Topic blabla | |
|
+5Godzillu squale Kitai valoulef Billbis 9 participants | |
Auteur | Message |
---|
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Date d'inscription : 01/08/2011
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 20:33 | |
| Bon alors je suis vraiment désolé, mais j'aime pas Facebook, je n'ai presque pas d'abonnés sur Twitter, et je ne pouvais vraiment pas garder ça pour moi... J'ai reçu cette pub dans ma boîte aux lettres. Et je suis sidéré de voir à quel point certains ne reculent devant rien. - Alerte mauvais goût de niveau 10:
Encore désolé :/J'ai quand même pris soin de ne pas rendre visible la marque, faut pas abuser non plus.
|
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 20:42 | |
| Ce soir, j'ai mangé une pizza. |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 21:29 | |
| J'ai mis du temps à la comprendre... Maintenant, je regrette _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 21:43 | |
| Voilà voilà. Ce soir, j'ai fait des blagues pourris sur le tchat. J'ai aussi fait ça. Je n'en suis que moyennement satisfait, mais le temps presse alors elle restera comme ça. C'est la maman du joueur. - Spoiler:
De dos, c'est plus facile :
Les anglophones aussi s'amusent bien. |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 21:55 | |
| Ben elle fonctionne pas mal du tout cette anim, je trouve... Edit : n'oublie pas de garder un peu de temps pour le bilan du mois de février, parce que j'ai l'impression qu'il y aura un peu plus de boulot que d'habitude ce mois-ci _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
| | | Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 22:07 | |
| Chouette ! J'aime beaucoup le style. MAGS ! MAGS ! MAGS ! Pour le bilan du mois de février, on peut lui accorder une dérogation, MAGS oblige. Pour se faire, Valoulef va t'envoyer les formulaires Billbis |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Topic blabla Jeu 13 Fév 2014 - 22:13 | |
| S'il le fait pas faut que quelqu'un le remplace, on ne peut pas louper le bilan de ce mois, on est en train d'exploser tous les records d'activité là ! Bon c'est vrai, ça tient aussi du fait qu'on blablate beaucoup, mais pas seulement. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Ven 14 Fév 2014 - 14:45 | |
| Je veux bien me charger du compte rendu du mois de février (je veux bien délégué aussi, hein !), il sera juste sans doute un peu en retard, vers le 3 mars ou un truc comme ça. Atavismus est bien plus enthousiaste que moi concernant mon MAGS. N'en attends pas trop, ou tu sera sacrément déçu. |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Topic blabla Ven 14 Fév 2014 - 15:20 | |
| Il n'a jamais été dit que le bilan du mois devait être posté le 1er du mois suivant hein Donc le 3 mars c'est très bien aussi. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Topic blabla Ven 14 Fév 2014 - 16:55 | |
| Pauvre Billbis, maintenant il a une échéance fixe au 3 mars _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Topic blabla Ven 14 Fév 2014 - 16:59 | |
| Jusqu'au 10 on tolèrera, s'il s'excuse pour le retard _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Ven 14 Fév 2014 - 18:22 | |
| Sinon, il y a Dungeon Keeper gratuit sur gog pendant quelques heures. |
| | | Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: Topic blabla Ven 14 Fév 2014 - 21:09 | |
| - Billbis a écrit:
- Atavismus est bien plus enthousiaste que moi concernant mon MAGS.
N'en attends pas trop, ou tu sera sacrément déçu. J'aime beaucoup le style graphique et je trouve que ça se prête assez au sujet. Je suis vraiment curieux de voir ce que ça va donner et je sens qu'il va y avoir du fond. Eh ! Oh ! Il faut y croire ! |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Mer 5 Mar 2014 - 22:21 | |
| Ça avance, valoulef, ça avance. Pour l'instant, ça ne concerne que les persos à 4 directions. Demain, j'attaque les huit directions. /!\ code non commenté et non testé (mais il compile) /!\ N'essayez pas de le comprendre sans avoir :
- de solides connaissances en trigo.
- une boite de dolipranne.
En fait, il vaux mieux que vous attendiez quelques jours mes explications. Header - Code:
-
// FaceIsoLocation header enum SpecifyDirection { eUp, eLeft, eRight, eDown, eNone };
import float FIL_Applatissement; import void FaceIsoDirection(this Character*, SpecifyDirection=eNone, BlockingStyle=eBlock); import void FaceIsoLocation(this Character*, int x, int y, BlockingStyle BStyle = eBlock); import void FaceIsoCharacter(this Character*, Character* toFace, BlockingStyle BStyle = eBlock); import void FaceIsoObject(this Character*, Object* toFace, BlockingStyle BStyle = eBlock); import void FIL_SetApplatissment(int horizonY);
Script - Code:
-
// FaceIsoLocation script
float FIL_Applatissement = 0.5; float FIL_TheAngle;
float FIL_Abs(float x) { if (x >= 0.0) return x; else return -1.0*x; }
void FaceIsoDirection(this Character*, SpecifyDirection Dir, BlockingStyle BStyle) { if(Dir == eUp) this.FaceLocation(this.x, this.y-1, BStyle); else if(Dir == eLeft) this.FaceLocation(this.x-1, this.y, BStyle); else if(Dir == eRight) this.FaceLocation(this.x+1, this.y, BStyle); else if(Dir == eDown) this.FaceLocation(this.x, this.y+1, BStyle); }
void FaceIsoLocation(this Character*, int x, int y, BlockingStyle BStyle) { FIL_TheAngle = Maths.ArcCos(FIL_Applatissement)/2.0; int x0 = this.x; int y0 = this.y; int deltaX = x - x0; int deltaY = y0 - y; //AGS Y axes is pointing down float deltaXf = IntToFloat(deltaX); float deltaYf = IntToFloat(deltaY); float alpha = Maths.ArcTan2(deltaYf, deltaXf); if (deltaXf >= 0.0 && FIL_Abs(alpha) <= FIL_Abs(FIL_TheAngle)) { this.FaceIsoDirection(eRight, BStyle); } else if (deltaXf < 0.0 && FIL_Abs(alpha) <= FIL_Abs(FIL_TheAngle)) { this.FaceIsoDirection(eLeft, BStyle); } else if (deltaYf >=0.0) { this.FaceIsoDirection(eUp, BStyle); } else { this.FaceIsoDirection(eDown, BStyle); } }
void FaceIsoCharacter(this Character*, Character* toFace, BlockingStyle BStyle) { this.FaceIsoLocation(toFace.x, toFace.y, BStyle); }
void FaceIsoObject(this Character*, Object* toFace, BlockingStyle BStyle) { int x, y; x = toFace.X + Game.SpriteWidth[toFace.Graphic]/2; y = toFace.Y - Game.SpriteHeight[toFace.Graphic]/2; this.FaceIsoLocation( x, y, BStyle); }
void FIL_SetApplatissment(int horizonY) { if (horizonY >= 0 && horizonY <= Room.Height) { float horizonYf; horizonYf = IntToFloat(horizonY); int RoomHeight = Room.Height; float RoomHeightf = IntToFloat(RoomHeight); FIL_Applatissement = -1.0 *(horizonYf / RoomHeightf) + 1.0; } }
export FIL_Applatissement;
Dernière édition par Billbis le Jeu 6 Mar 2014 - 21:47, édité 2 fois (Raison : Edition en douce d'une vulgaire erreure de Trigo. Il fallait bien evidement faire FIL_TheAngle = Maths.ArcCos(FIL_Applatissement)/2; et non FIL_TheAngle = Maths.ArcTan(FIL_Applatissement);) |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: FaceSideViewLocations Dim 9 Mar 2014 - 16:51 | |
| Et maintenant, place aux tests et à la documentation : Header - Code:
-
// FaceIsoLocation header
enum SpecifyDirection { eUp, eLeft, eRight, eDown, eUpRight, eUpLeft, eDownRight, eDownLeft, eNone };
struct SideViewFL { import static attribute float Angle4Dir; import static float get_Angle4Dir();// $AUTOCOMPLETEIGNORE$ import static void set_Angle4Dir(float input);// $AUTOCOMPLETEIGNORE$ import static attribute float Angle8Dir1; import static float get_Angle8Dir1();// $AUTOCOMPLETEIGNORE$ import static void set_Angle8Dir1(float input); import static attribute float Angle8Dir2; import static float get_Angle8Dir2();// $AUTOCOMPLETEIGNORE$ import static void set_Angle8Dir2(float input);// $AUTOCOMPLETEIGNORE$ import static attribute float Flatness; import static float get_Flatness();// $AUTOCOMPLETEIGNORE$ import static void set_Flatness(float input);// $AUTOCOMPLETEIGNORE$ import static attribute int HorizonLevel; import static int get_HorizonLevel();// $AUTOCOMPLETEIGNORE$ import static void set_HorizonLevel(int input);// $AUTOCOMPLETEIGNORE$ import static void CharacterWithDiagonalLoops(Character *chara, bool boule); };
import void FaceSVDirection(this Character*, SpecifyDirection=eNone, BlockingStyle=eBlock); import void FaceSVLocation(this Character*, int x, int y, BlockingStyle BStyle = eBlock); import void FaceSVCharacter(this Character*, Character* toFace, BlockingStyle BStyle = eBlock); import void FaceSVObject(this Character*, Object* toFace, BlockingStyle BStyle = eBlock); Script - Code:
-
// FaceIsoLocation script
float Angle4Dir; float Angle8Dir1; float Angle8Dir2; float Flatness; int HorizonLevel; bool IsCharacterWithDiagonalLoops[];
// Utilitary function float SideView_Abs(float x) // return absolute value { if (x >= 0.0) return x; else return -1.0*x; }
// struct static definitions static float SideViewFL::get_Angle4Dir() { return Angle4Dir; }
static void SideViewFL::set_Angle4Dir(float input) { if (input >= 0.0 && input <= Maths.Pi/2.0) { Angle4Dir = input; } }
static float SideViewFL::get_Angle8Dir1() { return Angle8Dir1; }
static void SideViewFL::set_Angle8Dir1(float input) { if (input >= 0.0 && input <= Maths.Pi/2.0 && input <= Angle8Dir2) { Angle8Dir1 = input; } }
static float SideViewFL::get_Angle8Dir2() { return Angle8Dir2; }
static void SideViewFL::set_Angle8Dir2(float input) { if (input >= 0.0 && input <= Maths.Pi/2.0 && input >= Angle8Dir1) { Angle8Dir2 = input; } }
static float SideViewFL::get_Flatness() { return Flatness; }
static void SideViewFL::set_Flatness(float input) { if (input >= 0.0 && input <= 1.0) { Flatness = input; Angle4Dir = Maths.ArcCos(Flatness)/2.0; Angle8Dir1 = Maths.ArcCos(Flatness)/6.0; Angle8Dir2 = Maths.ArcCos(Flatness)/3.0; } }
static int SideViewFL::get_HorizonLevel() { return HorizonLevel; }
static void SideViewFL::set_HorizonLevel(int input) { if (input >= 0 && input <= Room.Height) { float horizonYf; horizonYf = IntToFloat(input); int RoomHeight = Room.Height; float RoomHeightf = IntToFloat(RoomHeight); SideViewFL.Flatness = -1.0 *(horizonYf / RoomHeightf) + 1.0; //Linear decrease of flatness. Probably not the best model. Arctan ? } }
static void SideViewFL::CharacterWithDiagonalLoops(Character *chara, bool boule) { IsCharacterWithDiagonalLoops[chara.ID] = boule; }
// Module core functions void FaceSVDirection(this Character*, SpecifyDirection Dir, BlockingStyle BStyle) { if(Dir == eUp) this.FaceLocation(this.x, this.y-1, BStyle); else if(Dir == eLeft) this.FaceLocation(this.x-1, this.y, BStyle); else if(Dir == eRight) this.FaceLocation(this.x+1, this.y, BStyle); else if(Dir == eDown) this.FaceLocation(this.x, this.y+1, BStyle); else if(Dir == eUpRight) this.FaceLocation(this.x+1, this.y-1, BStyle); else if(Dir == eUpLeft) this.FaceLocation(this.x-1, this.y-1, BStyle); else if(Dir == eDownRight) this.FaceLocation(this.x+1, this.y+1, BStyle); else if(Dir == eDownLeft) this.FaceLocation(this.x-1, this.y+1, BStyle); }
void FaceSVLocation(this Character*, int x, int y, BlockingStyle BStyle) { int deltaX = x - this.x; int deltaY = this.y - y; //AGS Y axes is pointing down float deltaXf = IntToFloat(deltaX); float deltaYf = IntToFloat(deltaY); float alpha = Maths.ArcTan2(deltaYf, deltaXf); if (!IsCharacterWithDiagonalLoops[this.ID]) { // Four loops character if (deltaX >= 0 && SideView_Abs(alpha) <= SideViewFL.Angle4Dir) { this.FaceSVDirection(eRight, BStyle); } else if (deltaX < 0 && SideView_Abs(alpha) <= SideViewFL.Angle4Dir) { this.FaceSVDirection(eLeft, BStyle); } else if (deltaY >0) { this.FaceSVDirection(eUp, BStyle); } else { this.FaceSVDirection(eDown, BStyle); } } else { // Eight loops character if (deltaX >= 0 && SideView_Abs(alpha) <= SideViewFL.Angle8Dir1) { this.FaceSVDirection(eRight, BStyle); } else if (deltaX >= 0 && SideView_Abs(alpha) <= SideViewFL.Angle8Dir2) { if (deltaY >=0) { this.FaceSVDirection(eUpRight, BStyle); } else { this.FaceSVDirection(eDownRight, BStyle); } } else if (deltaX < 0 && SideView_Abs(alpha) <= SideViewFL.Angle8Dir1) { this.FaceSVDirection(eLeft, BStyle); } else if (deltaX < 0 && SideView_Abs(alpha) <= SideViewFL.Angle8Dir2) { if (deltaY >=0) { this.FaceSVDirection(eUpLeft, BStyle); } else { this.FaceSVDirection(eDownRight, BStyle); } } else if (deltaY >=0) { this.FaceSVDirection(eUp, BStyle); } else { this.FaceSVDirection(eDown, BStyle); } } }
void FaceSVCharacter(this Character*, Character* toFace, BlockingStyle BStyle) { this.FaceSVLocation(toFace.x, toFace.y, BStyle); }
void FaceSVObject(this Character*, Object* toFace, BlockingStyle BStyle) { int x, y; x = toFace.X + Game.SpriteWidth[toFace.Graphic]/2; y = toFace.Y - Game.SpriteHeight[toFace.Graphic]/2; this.FaceSVLocation( x, y, BStyle); }
function game_start () { IsCharacterWithDiagonalLoops = new bool[Game.CharacterCount]; int i = 0; while (i < Game.CharacterCount) { IsCharacterWithDiagonalLoops[i] = false; i++; } SideViewFL.set_Flatness(0.5); } |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Mar 29 Avr 2014 - 18:43 | |
| J'ai un petit problème de RegExp avec R. Si une personne, une chèvre ou un pan pouvait m'aider, ce serai cool ! J'ai un tableau de type : gene_id RPKM ENSG000000001.1 10.53 ENSG000000042.5 0 2018 1.2 ENSG000000787.3 4 etc.J'ai un vecteur de type : ENSG000000042 ENSG000000787Je cherche à récupérer pour chaque élément du vecteur le "RPKM" associé. Probléme, les gene_id finissent par un .N plutôt gênant. Pour l'instant, mon code fonctionne pas trop mal, il ressemble à ça: - Rscript a écrit:
- t<-data.frame("gene_id"=c("ENSG000000001.1","ENSG000000042.5","2018","ENSG000000787.3"), "RPKM"=c(10.53,0,1.2,4), stringsAsFactors =FALSE)
v<-c("ENSG000000042", "ENSG000000787")
Connaissez-vous une méthode plus élégante ?
l<-strsplit(t$gene_id, ".", fixed = TRUE) for (i in 1:length(l)) { l[i]<-l[[i]][1] } l<-unlist(l) rownames(t)<-l #il n'y a bien que des uniques
v<-data.frame("ensembl"=v, stringsAsFactors =FALSE) v$RPKM<-t[v$ensembl, "RPKM"] Ça fonctionne, mais ce n'est pas très beau. Connaissez-vous une méthode plus élégante ? |
| | | Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: Topic blabla Mar 29 Avr 2014 - 21:08 | |
| |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Topic blabla Mar 29 Avr 2014 - 22:15 | |
| Je ne suis pas très à l'aise avec R mais tu n'es pas sans savoir que c'est un langage assez puissant en termes de manipulation de données. Si vraiment tu veux garder le format des entrées dans ta colonne gene_id et passer par une expression régulière sur un vecteur, voici une solution : - Code:
-
t <- data.frame("gene_id"=c("ENSG000000001.1","ENSG000000042.5","2018","ENSG000000787.3"), "RPKM"=c(10.53,0,1.2,4), stringsAsFactors =FALSE) v <- c("ENSG000000042", "ENSG000000787") subset(t, grepl(paste("^(",paste(v, collapse='|'),")\\.\\d$", sep=''), gene_id))$RPKM Je ne trouve pas ça particulièrement plus élégant, mais c'est plus court et ça fait le travail Petites explications : - subset te retourne un tableau contenant les lignes qui satisfont la condition booléenne que tu passes.
- grepl est une version booléenne de grep qui teste le modèle d'expression régulière en premier argument sur la chaîne passée en second argument.
- Ce que j'ai fait, c'est concaténer toutes les entrées de ton vecteur avec un | qui est le caractère disjonctif en expressions rationnelles : ab|cd cherche du texte qui correspond soit à "ab" soit à "cd". Pour plus de précision, on veut que les entrées apparaissent en tout début de texte (caractère ^) et soient suivies de .N (\\.\\d, double échappement) et c'est la fin du texte ($). Sur le vecteur de l'exemple, on se retrouve avec ^(ENSG000000042|ENSG000000787)\\.\\d$ !
_________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Mer 30 Avr 2014 - 10:03 | |
| Merci Atavismus et Kitai ! La solution de Kitai fonctionne presque, et est un poil plus rapide que ma solution d'origine (il faut dire que les for sous R ne sont pas son fort !). Presque seulement car elle ne retiens pas certaines lignes de types "ENSG00000166710. 11". Hé oui, parfois le .N final est en fait un .NN, et peut-être dans des cas extrêmes des points .NNN. Bon, tu ne pouvais pas deviner. J'ai un peu du mal à implémenter la RegExp d'Atavismus, il faudrait que je lise un bon tutoriel sur ces machins un jour. - Kitai a écrit:
- Si vraiment tu veux garder le format des entrées dans ta colonne gene_id et passer par une expression régulière sur un vecteur
Non non, toutes les solutions me vont parfaitement. En particulier, si tu connais l'astuce pour récupérer le premier élément de chaque vecteur d'une liste de vecteurs sans avoir à passer par mon affreuse boucle for, je suis preneur. Encore merci.
Dernière édition par Billbis le Mer 30 Avr 2014 - 11:03, édité 1 fois |
| | | Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: Topic blabla Mer 30 Avr 2014 - 10:18 | |
| De rien Bill. grep("/[^.]*/", tonstring) Ou un truc du genre ? Je ne connais pas du tout R, juste un peu les regex. |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Topic blabla Mer 30 Avr 2014 - 12:21 | |
| - Billbis a écrit:
- Hé oui, parfois le .N final est en fait un .NN, et peut-être dans des cas extrêmes des points .NNN.
Libre à toi de modifier le modèle de façon à le rendre plus souple (il est très contraint ici). Si tu ne sais pas le nombre de N que tu as après le ., alors tu prendras simplement un modèle du genre ^(ENSG000000042|ENSG000000787)\\.\\d+$ (j'ai juste rajouté le + après \\d). L'expression régulière que propose Atavismus est simple et efficace, mais elle ne permet pas à elle seule de prendre en compte les entrées du vecteur (tu ne veux que deux ENSG... spécifiques sur les trois). - Billbis a écrit:
- En particulier, si tu connais l'astuce pour récupérer le premier élément de chaque vecteur d'une liste de vecteurs sans avoir à passer par mon affreuse boucle for, je suis preneur.
Encore merci. Je suis certain que ça doit se trouver sur stackoverflow avec les bons mots-clés. En attendant je peux te proposer une solution un peu complexe (on imbrique plein de fonctions), mais en une seule ligne : rownames(t)<-sapply(t$gene_id, function(x) unlist(strsplit(x,".",fixed=T))[1])En gros sapply fait le boulot de la boucle for, et ne vectorise qu'à la fin. EDIT : Une autre version de ma RegExp. Il y a une ligne de plus et à mon avis cela demande plus de calculs à la machine, mais ça évite de créer une expression régulière à rallonge. En cela, je la trouve plus élégante. - Code:
-
c <- sapply(v, function(x) grepl(paste("^",x,"\\.\\d+$",sep=""),t$gene_id)) t$RPKM[sapply(as.data.frame(t(c)), any)] _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: Topic blabla Jeu 1 Mai 2014 - 22:13 | |
| - Kitai a écrit:
- L'expression régulière que propose Atavismus est simple et efficace, mais elle ne permet pas à elle seule de prendre en compte les entrées du vecteur (tu ne veux que deux ENSG... spécifiques sur les trois).
Je ne vais pas faire tout le boulot à la place de Bill ! |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Sam 2 Aoû 2014 - 6:28 | |
| Connaissez-vous l'activité/concours Coloring the ball (littéralement : colorier la balle) du forum anglophone ? Il s'agit de remplir une forme prédéfinie en respectant un thème donné. Ce mois ci, on doit dessiner une forme mystérieuse dans une piscine. Voici la forme : On a le droit de la retourner dans tout les sens. J'ai participé pour la première fois, et comme je suis fier du résultat... ...et bien je le poste ici aussi ! |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Topic blabla Sam 2 Aoû 2014 - 13:36 | |
| Très belle interprétation Billbis. Tu l'avais vu dans la forme dès le départ, ou bien c'est en tâtonnant que tu en es arrivé à dessiner le tentacule pourpre ? _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Sam 2 Aoû 2014 - 14:05 | |
| Merci. J'ai d'abord eu le pot de cactus, puis quand j'ai retourné la forme pour pouvoir dessiner le pot dans le bon sens, Tentacule Pourpre m'a semblé évident - tout du moins en lui rajoutant un couvre-chef approprié. |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Topic blabla Mar 9 Sep 2014 - 7:45 | |
| Vous l'avez peut-être remarqué, je ne suis plus très présent en ce moment. Et Nothing About The Dog semble être à l'abandon. Tout va bien, c'est juste une pause. Si je ne désespère pas pouvoir m'y consacrer un peu de temps en temps, cette absence relative d'activité risque de se prolonger jusqu’en Février. Pour ceux que ça intéresse, j'ai une thèse à finir d'écrire, puis à soutenir, et un déménagement et une nouvelle installation à préparer. Mais ensuite, je reviendrai avec plein de nouveau projets ! Normalement, je ferai un compte rendu d'activité du forum des mois Août Septembre groupé à la fin du mois. |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Topic blabla Mer 10 Sep 2014 - 10:03 | |
| De toute façon je crois qu'on entre doucement dans la traversée du désert automnale, qu'on avait aussi connu l'année dernière. Et d'ailleurs au final, ça n'avait pas empêché au forum d'être très actif quelques mois plus tard. C'est comme ça : des fois on a la tête à autre chose, ou pas beaucoup de temps. Bonne chance pour ta thèse ! _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
| | | Contenu sponsorisé
| Sujet: Re: Topic blabla | |
| |
| | | | Topic blabla | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |