Je souhaite remplacer une chaîne (le numéro '2' dans mon exemple) dans une trame de données différemment en fonction du numéro de ligne. Ceci est mon entrée:Remplacer un nombre par caractère par apply en fonction de la ligne de trame de données
df <- "2 2 2 3
3 3 2 1"
df <- read.table(text=df)
Ce serait mon résultat attendu:
dfout <- "1R 1R 1R 3
3 3 2R 1"
dfout <- read.table(text=df)
Par conséquent, le chiffre « 2 » devrait être remplacé par « 1R » dans la première rangée, par « 2R » dans la deuxième rangée et ainsi de suite dans les grandes matrices (mes données réelles ont plus de 1000 lignes). J'ai essayé le code ci-dessous sans succès:
apply(g1x, 1, function(x) gsub("2", nrow(x), x))
Je serais heureux de toute aide ici.
Dans mon exemple, j'ai deux lignes, pour la première ligne, je voudrais remplacer « 2 » par « 1R », dans la deuxième rangée remplacer « 2 » par ' 2R 'et ainsi de suite. J'ai mis à jour ma question pour plus de clarté. – user3091668
@Sotos - bien sûr 'gsub' acceptera des fonctions si elles donnent la bonne valeur -' apply (df, 1, fonction (x) gsub ("2", longueur (x), x)) 'par exemple. – thelatemail
@thelatemail, je pensais qu'ils devaient utiliser 'gsubfn' pour cela (pensait que c'était son but). Peut-être que je me suis précipité ... – Sotos