2016-03-31 9 views
1

私は序数変数とテキスト付きの列を持つデータセットを扱っています。一般的に、テーブル構造を維持しながら、テキストマイニングの結果である列を追加したいと考えています。(コンテキスト)テキストマイニング操作の結果である列を追加する

は、例えば、私は、CSVファイルdata-subset.csvをインポートし、データフレームがdatacsv

datacsv=read.csv("data-subset.csv", header=TRUE,sep=";") 

tekstがテキストを含む第3の列と呼ばれる得られました。私は "fte"の文脈でそのテキスト内の数字(0と1の間にある)を検索し、これらの数字を列fteとして追加したいと思います。参照:

> luid titel   tekst 
>1 47300 docent wiskunde De Stichting Openbaar Voortgezet Onderwijs 0,65 
          fte voltijd niveau: havo vwo 
>2 43701 docent natuurkunde Speciaal onderwijs fulltime 2015 2016 fte 0,77 Haarlem 
>3 43702 assistent  basisonderwijs Amsterdam fte 0,5 

を私は満足のいく結果がなければtmquanteda

install.packages("tm", "quantada") library ("tm") library ("quanteda")

のようなパッケージをインストールしている、私はそのような

datacsv ["fte"]<- kwic(datacsv$"tekst", "fte", 4) 
など様々な kwic文を、使用しようとしました

誰かがテキスト列をマイニングして結果を列(または複数の列)として追加する方法を知っていますか?

ありがとうございます!

+0

だから、数値の文字列があり、数値を抽出したいのですか?質問には再現可能な例を含める必要があります。 [this]を見てください(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – Sotos

+2

ようこそStackoverflowへ!あなたのおかげで[mcve] –

+0

を提供してください。私は私の質問を編集しました。うまくいけば、今はもっと使えるはずです。 –

答えて

0

これは?

library(stringr) 
datacsv$fte <- str_extract_all(sapply(strsplit(datacsv$tekst, "fte "), "[", 2), '\\d+\\.*\\d*') 
+0

これは正しい方向です。しかし、私が現在直面している問題は、他のケースに複数の数字が含まれていることです。たとえば、変数 'tekst'には1年も含まれています。これは、Rが用語「fte」の周りに位置するそれらの番号のみを抽出することが不可欠であることを意味する。 'fte'はケース間のランダムな位置にあります。 –

0

これはなんですか?

library(dplyr)  
    mutate(datacsv, 
      fte = as.numeric(regmatches(tekst,regexpr("[[:digit:]]+\\.[[:digit:]]+", 
                tekst)))) 
関連する問題