2016-10-19 5 views
-2

このデータフレームの左側の日付列にはどのようにアクセスしますか?それは私にレートの列を与える0列目のデータフレーム情報を取得するR

> data 
GMT 
       Rate 
2005-02-28 0.48326866256 
2005-04-30 0.64922340405 
2005-05-31 0.70036043096 
2005-06-30 0.72051442515 
. 
. 
. 

私が入力した場合、

data[ , 1] 

...。予想通り。

私が使用している場合、それは動作しません

data[ , 0] 

...。そして、私は 'Error:bounds outsigned'を取得します。

しかし、私がしなければ、

data[1 , 0] 

...私は最初の日付を取り戻します。 2005-02-28。


これは私がデータをプルアップすることができますことを考えると、[0、]私はデータをプルアップすることができないように私には少し矛盾しそうです[1]とも[1、0]のデータをプルアップすることができます。

どのようにそれらの日付値をプルアップするのですか?そしてなぜデータ[、0]は機能しませんか?

ありがとう、

答えて

3

0番目の列はありません。あなたが見ているのは、行の名前です。

rownames(data) # for a matrix-like object 
row.names(data) # for a data.frame 

どちらでもうまく動作します。

+0

ありがとう、私はRに少し新しく、これは私をイライラさせました。 – user5619709

0

最初に一般的な注意点として、Rには0のインデックスがないため、0の列はありません。データ型(str(data)で取得)に応じて、rownamesデータ)(実際には行列やdata.frameの場合)、または索引を介して(おそらくそうであるように、時系列の場合)

0

列の名前があるように、rownamesという0番目の列はありません。行の名前があります。

あなたの場合

rownames(iris) 

irisデータセットの例を示す:rownames(data)

代わりに、irisを以下に示しますが、まず、カラム、その後、データセット全体としてrownamesを追加することができ、別のデータフレームdfを作成することができますデータセット。ここ

print(head(df), row.names=F) 
    # First_col Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
    #   1   5.1   3.5   1.4   0.2 setosa 
    #   2   4.9   3.0   1.4   0.2 setosa 
    #   3   4.7   3.2   1.3   0.2 setosa 
    #   4   4.6   3.1   1.5   0.2 setosa 
    #   5   5.0   3.6   1.4   0.2 setosa 
    #   6   5.4   3.9   1.7   0.4 setosa 

あなたのデータセットの同じを実装することができます作成​​したdfrownamesの印刷を回避するために

df <- data.frame(cbind(First_col=rownames(iris), iris)) 
    head(df) 

    # First_col Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
    # 1   1   5.1   3.5   1.4   0.2 setosa 
    # 2   2   4.9   3.0   1.4   0.2 setosa 
    # 3   3   4.7   3.2   1.3   0.2 setosa 
    # 4   4   4.6   3.1   1.5   0.2 setosa 
    # 5   5   5.0   3.6   1.4   0.2 setosa 
    # 6   6   5.4   3.9   1.7   0.4 setosa 

関連する問題