イェルーン:
私は教育の年にフリーテキスト項目を含む列を持つデータフレームを持っています。フリーテキストエントリから私は数字のすべてを抽出し、それらを合計します。
例:DATA_EN $ educationTxt [1]は、 "6小学校10高校" を与えます
次のコードで、私は両方の数値を抽出し、それらを合計することができます。
library(stringr)
x <- as.numeric(str_extract_all(data_en$education[1], "[0-9A]+")[[1]])
x <- as.vector(x)
x <- sum(x)
しかし、私は、理想的のように、すべてのフリーテキストエントリ(つまり各行)のためにこれを行うと、その後(例えばDATA_EN $ educationNumとして変数にIE)の行ごとのデータフレームに結果を追加します。私は少し進め方にこだわっています。
nurandi :
あなたは使用することができます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
データ
data_en <- data.frame(education = c("6 primary school 10 highschool",
"10 primary school 2 highschool",
"no school"))