私はいわゆるRのようなデータフレームを持っています UK_profiles
:
row.names id name
1 1 8131437 Profile
2 2 8131719 WolverineCompetition
3 4 8132011 www.vaseline.com
4 10 23265829 www.keepingskinamazing.co.uk
5 23 8042743 Mobile
6 24 8043312 Test
7 25 90914664 Join Our Core
8 26 45272695 UDF
9 27 50547829 apps.euro-bureau.eu/fairathon
10 28 50916438 www.benjerry.intashop.com/
11 44 83667343 All Web Site Data
12 45 84556272 UK
dplyrを使って、greplを使って行をフィルタリングして削除したいと思っています:
require(dplyr)
UK_profiles.filtered <- filter(UK_profiles, !grepl("Rollup|Microsite|Mobile|Test|tset|Profile|Facebook|Unfiltered|returnurl", name))
しかし、オブジェクト "name"が見つかりませんというエラーが表示されます。
私も取得:data.matrix(データ):NAsは、強制によって導入されました。
オブジェクト "名前"は明らかにデータフレーム内にあります。誰かが助けてくれますか?
回答:
回答№1の場合は37それは、あなたが stats::filter
機能ではなく dplyr
1。あなたが正しいものを取得するためには、表記法 dplyr::filter
.
d = data.frame(x=1:10,
name=c("foo","bar","baz","bar","bar","baz","fnord","qar","qux","quux"))
filter(d, !grepl("ar|ux", name))
Error in grepl("ar|ux", name) : object "name" not found
dplyr::filter(d, !grepl("ar|ux", name))
x name
1 1 foo
2 3 baz
3 6 baz
4 7 fnord
あなたもする必要はありません library(dplyr)
これがうまくいくために - あなたは必要がある dplyr
インストールされています。
これは、どのパッケージの関数でも機能します。
回答№2の場合は1
これがなぜ発生するのかを理解するには、以下の手順に従ってエラーを簡単に再現することができます。
負荷dplyr
負荷 dplyr
既定のライブラリのみが読み込まれた新しいセッションに移行し、 filter
として動作します dplyr
ロード後 stats
library(dplyr)
#>
#> Attaching package: "dplyr"
#> The following objects are masked from "package:stats":
#>
#> filter, lag
#> The following objects are masked from "package:base":
#>
#> intersect, setdiff, setequal, union
filter(mtcars, mpg < 15)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 14.3 8 360 245 3.21 3.570 15.84 0 0 3 4
#> 2 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
#> 3 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
#> 4 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
#> 5 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4
dplyrをアンロード
これにより、エラーが現在使用しようとしています stats::filter
。アンローディング stats
関数と呼ばれる別のエラーがあります filter
見つけた
detach("package:dplyr") # Unload dplyr
filter(mtcars, mpg < 15) # Using stats::filter
#> Error in filter(., mpg < 15): object "mpg" not found
detach("package:stats") # Unload stats
filter(mtcars, mpg < 15)
#> Error in filter(., mpg < 15): could not find function "filter"
リロード統計とdplyr
再読み込みを確認する dplyr
後 stats
我々は、 dplyr
バージョン filter
再び働く
library(stats)
library(dplyr)
#>
#> Attaching package: "dplyr"
#>
#> The following objects are masked from "package:base":
#>
#> intersect, setdiff, setequal, union
filter(mtcars, mpg < 15)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 14.3 8 360 245 3.21 3.570 15.84 0 0 3 4
#> 2 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
#> 3 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
#> 4 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
#> 5 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4
回答№3の場合は1
私は再インストールしました レン 再起動セッションを伴うパッケージ
回答№4の場合は0
私はあなたが両方をインストールする必要があると思う dplyr
〜のパッケージ install.packages("dplyr")
それから、 library
コマンド library(dplyr)
ロードする dplyr
使用のためにメモリに格納する。
たとえば、 mtcars
データセットは dplyr
、私はただインストールする場合 dplyr
入力して head(mtcars)
それを見つけることはできません。 library
コマンドが見つかりました。