0
文字列からリンクを抽出する関数を作成しました。データフレームを引数として渡してもうまく動作しますが、2番目の引数としてカラム名string
を渡したいときは動作しません。tidyr :: extractを使用しているときに第2引数で機能しない関数
一つの引数を持つワーキング機能:
library(tidyr)
extractLinks <- function(x) {
# get all links in new column "url"
df <- tidyr::extract(x, string, "url", "(http.*)")
#get clean links and domains
df <- tidyr::extract(df, url, c("site", "domain"), "(http.*\\.(com|co.uk|net))", remove = F)
return(df)
}
extractLinks(df, string)
今、私は2番目の引数を追加したいが、それはエラーを返します:
Error in names(l) <- enc2utf8(into) :
'names' attribute [1] must be the same length as the vector [0]
これは、2つの引数を持つ私の関数である。
extractLinks <- function(x, y) {
# get all links in new column "url"
df <- tidyr::extract(x, y, "url", "(http.*)")
#get clean links and domains
df <- tidyr::extract(df, url, c("site", "domain"), "(http.*\\.(de|com|at|ch|ly|co.uk|net))", remove = F)
return(df)
}
extractLinks(df, string)
複製の場合、データフレームの例:
string
my text in front of the link http://www.domain.com
my text in front of the link http://www.domain.com
my text in front of the link http://www.domain.com
どうしたらよいですか?
だから、 'df'は' STRING'という列とdata.frameのですか?より明確にするために、データを[再現可能なフォーマット](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)に入れることが役立ちます。 'y'値の評価を遅らせたいので、あなたのfuntionに非標準評価を実行させたいように見えます。 [dplyr NSE vignette](https://cran.r-project.org/web/packages/dplyr/vignettes/nse.html)または[Advanced R - Non Standard Evaluation](http:// adv- r.had.co.nz/Computing-on-the-language.html)セクションを参照してください。通常、それは価値があるよりもトラブルです。 – MrFlick