2016-06-15 8 views
0

私はR(主にSAS/STATA)を新しく導入しています。私は作業中のRのデータセット(フレーム?)を持っており、値のリストにある値だけを保持する必要があります。 SASでは、通常、IN LISTの何かをやります。列内の値=リスト内の値でRを保持する

試合でのエラー(X、テーブル、NOMATCH = 0L:私は次のエラーを取得する

merged2<-merge(merged1, bpa4data, by="CASE_ID") 

keep<-c(745.0, 745.1, 745.2, 745.3, 745.4, 745.5, 745.6, 745.7, 745.8,  
745.9, 746.0, 746.1, 746.2, 746.3, 746.4,746.5, 746.6, 746.7, 746.8, 746.9, 
747.0, 747.1, 747.2, 747.3,747.4, 747.5, 747.6, 747.8, 747.9) 

merged2[Reduce(`|`, lapply(merged2[sapply(merged2, is.numeric)], bpa4 %in% 
keep)),] 

この

は動作していないよう、私はこれまで何をしたかのコードであり、 ):オブジェクト 'bpa4'が見つかりません。

どのような援助をいただければ幸いです。列bpa4は、「保持」リストに対応する値を持つ列であるため、コードを誤って使用していると感じます。

感謝!

+0

これは誤植かもしれません。 bpa4という名前のオブジェクトがありますか?あなたの 'merge'関数にbpa4dataがあります。 – lmo

+0

bpa4は列/変数名です。それで、私は、 "keep"を働かせる必要があります。つまり、カラムを調べ、 "keep"の値の1つだけを保持します。私のRリンゴの重大な誤用に対する申し立て。 – CharlieATX

+0

bpa4がbpa4dataの変数である場合は、 'bpa4data $ bpa4'が必要です。 – lmo

答えて

0

dplyrパッケージのfilter()機能を試してみませんか?

bpa4 = c(744.9, 745.0, 745.1) 
keep = c(745.0, 745.1) 
df = data.frame(bpa4) 

df 
#> bpa4 
#> 1 744.9 
#> 2 745.0 
#> 3 745.1 

dplyr::filter(df, bpa4 %in% keep) 
#> bpa4 
#> 1 745.0 
#> 2 745.1 
関連する問題