2016-10-11 11 views
0

2011年の第7月より前にすべての値を削除するためにデータセットをサブセット化しようとしています。異なる列に年と月があります。私が知っている私は何をやっている条件付きで2つの数値の行の値を選択するR

は(も間違った出力を得る)、論理的に間違っているが、これを行うには正しい方法を考え出すように見えることはできません:あなたは

state_in2_check <- subset(state_in2, Month > 6 & Year > 2011) 
+1

サンプルデータと取得した出力を共有してください。希望の出力 –

+0

'state_in2_check < - サブセット(state_in2、state_in2 $ Month> 6&state_in2 $ Year> 2011)を試してください。 'state_in2'の列を明示的に参照する必要があります。 –

+2

@MauritsEvers - あなたはしません。 'サブセット(mtcars、mpg> 18&cyl == 4)' – thelatemail

答えて

1

@thelatemailを与えている実行可能にコメントの中の解決策。あなたの問題は、2つの論理チェックを別々にマッチさせるようにRに依頼していますが、それらのチェックはそれぞれ別のチェックに依存しています。たとえば、「Jan-2013」は問題ありませんが、「1月」の日付を取得することはできません(6ヶ月以上しか受け付けていないため)。 @ thelailemailのソリューションは、2011年を上回っている限り、6ヵ月未満の月が受け入れられるように小切手を分離します。

別の方法は、サブセット化と同時に日付に変換することですプロセスは、もう少し論理的である:

Month <- 7 
Year <- 2011 
as.Date(paste(Year, Month, 15, sep = "-")) 
[1] "2011-07-15" 

あなたは(私の意見では)より論理的な方法で、単純な変換はサブセットすることを使用することができます:私は日を作った

state_in2_check <- subset(state_in2, 
          as.Date(paste(Year, Month, 15, sep = "-")) > 
           as.Date("2011-06-15") 
) 

注意両方の日付の変換で同じ月になります月/年のみによる。

+0

私は今理解しています!乾杯 – user36176

関連する問題