J'ai une trame de données dt:Ajouter un préfixe à chaque ligne d'une colonne si elle ne contient pas
dt <- data.frame(id=c(1,2,3),value=c("a","_b","c"))
Maintenant, je veux ajouter le préfixe _ à chaque « valeur » qui ne commence pas par _ , de sorte que la trame de données résultant est
id, value
1, _a
2, _b
3, _c
Je sais que je peux utiliser la fonction substr pour vérifier si une valeur commence par _, mais je ne veux pas le faire avec une boucle. Je veux utiliser les fonctions d'application. Comment dois-je procéder? Je suis nouveau pour appliquer des fonctions en passant.
--- Edit: merci à tous pour vos solutions. Désolé mais j'ai trop simplifié mon cas réel. Dans mon cas réel, je dois ajouter le préfixe _ aux valeurs qui ne commencent pas par &, différents symboles. --- Edit2: Il suffit de réaliser que c'est la même chose. Ce qui suit fera
dt$value <- gsub("^([^&].*)", "_\\1", dt$value)