2016-10-07 5 views
-1

としてデータフレームを受信します。サブセットデータフレームといつも私は、データフレームのサブセットをするにはどうすればよいの戻り値の型

1列のみがを選択しても、私はいつも戻ってデータフレームを取得 よう
df <- data.frame(a = c(1,2,3), b = c(4,5,6)) 

:一つの列を選択することに相当するであろう場合

class(df[,1]) 
[1] "numeric" 

所望の結果:1つの列のみを選択する場合、所望しないよう

class(df[,1:2]) 
[1] "data.frame" 

結果:2つの列を選択するとき

結果、所望のように

class(data.frame(a = c(1,2,3)) 
+2

'df [、1、drop = FALSE]'です。また、 'dplyr'を使用している場合、dplyr関数は' dbl [、1] 'を実行してもデータフレームクラスを維持する' tbl_df'クラスのデータフレームを返します。 – eipi10

答えて

1

Zheyuan Liから明確にする:

df[1] 
df[,1, drop = FALSE] 

リターンだけ列を持つデータフレーム1

あなたは私のための行と同様に、列、これらの作業をサブセットしたい場合は、次のコメントで示唆したように

df[1:2, 1, drop = FALSE] 
subset(df[1], a < 3) 
subset(df, subset = a<3, select = a) 
+0

私が掲示していたのと同時にコメントとあなたの答えを読んでください。できるだけ早くあなたの答えを受け入れます。 – Bobby

1

、の両方をこれらの可能性は、私が探していたものを正確に提供します。これをよりよく理解できるようになりました。

df[1] 

df[,1,drop=FALSE] 
関連する問題