我是R的新手,一直在爲此而苦苦掙扎。我想創建一個新列,檢查列'text'中是否存在任何單詞(「foo」,「x」,「y」),然後將該值寫入新列。R:提取和粘貼關鍵字匹配
我有看起來像這樣的數據幀:A->
id text time username
1 "hello x" 10 "me"
2 "foo and y" 5 "you"
3 "nothing" 15 "everyone"
4 "x,y,foo" 0 "know"
正確的輸出應爲:
A2 - >
id text time username keywordtag
1 "hello x" 10 "me" x
2 "foo and y" 5 "you" foo,y
3 "nothing" 15 "everyone" 0
4 "x,y,foo" 0 "know" x,y,foo
我有這樣的:
df1 <- data.frame(text = c("hello x", "foo and y", "nothing", "x,y,foo"))
terms <- c('foo', 'x', 'y')
df1$keywordtag <- apply(sapply(terms, grepl, df1$text), 1, function(x) paste(terms[x], collapse=','))
哪個有效,但當我的needleList包含12k個單詞並且我的文本有155k個行時崩潰R.有沒有辦法做到這一點,不會崩潰R?
看起來效率很低。你爲什麼不研究已經解決這個問題的軟件包。 –
也許在stringr庫中試試這樣的東西:sapply(df1,function(x)str_extract_all(x,paste(terms,collapse =「|」))) – Wyldsoul
'needleList'是什麼? – steveb