nombre Exctract et le numéro de somme de l'entrée de texte libre, ajouter à df

Jeroen:

J'ai un dataframe avec une colonne qui contient des entrées de texte libre sur des années d'éducation. Des entrées de texte libre, je veux extraire tous les nombres et les additionner.

Exemple: data_en $ educationTxt [1] donne "6 l'école primaire 10 highschool"

Avec le code suivant je peux extraire les nombres et les additionner.

library(stringr)
x <- as.numeric(str_extract_all(data_en$education[1], "[0-9A]+")[[1]])
x <- as.vector(x)
x <- sum(x)

Cependant, je voudrais idéalement faire pour toutes les entrées de texte libre (chaque rangée) puis ajouter les résultats à la trame de données par ligne (dans une variable telle que data_en $ educationNum). Je suis un peu coincé sur la façon de procéder.

nurandi:

Vous pouvez utiliser sapply:

data_en$educationNum <- sapply(str_extract_all(data_en$education, "[0-9]+"), 
       function(i) sum(as.numeric(i)))

data_en
#                        education educationNum
# 1 6 primary school 10 highschool           16
# 2 10 primary school 2 highschool           12
# 3                      no school            0

Les données

data_en <- data.frame(education = c("6 primary school 10 highschool",
                      "10 primary school 2 highschool",
                      "no school"))

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=399946&siteId=1
conseillé
Classement