7

データフレームの行番号を適切に縮小するのに問題があります。

Rを使用してテキストファイルからインポートした「mydata」という名前のデータセットがあります。データフレームには、10列の約200行があります。

次を使用して、行番号3、7、9、199を削除しました。

mydata <- mydata[-c(3, 7, 9, 199),]

このコマンドを実行すると、行3、7、9、199はリストから削除されますが、行番号は自動的に196に縮小されず、200のままになります。どういうわけか、これらの行番号は各「行」に付加されているように感じます。データフレームの一部として?

この問題を解決するにはどうすればよいですか?

さらに困惑するのは、 R Studioを使用してテキストファイルをインポートしても、問題がないことです。(上記のコマンドを実行すると196が表示されます)。ただし、Rを使用する場合、リスト内の実際の行数と一致するデータフレーム内の行番号を変更することはできません。

誰かがこれを修正する方法を教えてもらえますか?

4

2 に答える 2

11

あなたは簡単に行うことができます:

rownames(mydata) <- NULL

サブセット化を実行した後。

例えば:

> mydata = data.frame(a=1:10, b=11:20)
> mydata = mydata[-c(6, 8), ]
> mydata
    a  b
1   1 11
2   2 12
3   3 13
4   4 14
5   5 15
7   7 17
9   9 19
10 10 20
> rownames(mydata) <- NULL
> mydata
   a  b
1  1 11
2  2 12
3  3 13
4  4 14
5  5 15
6  7 17
7  9 19
8 10 20
于 2012-09-11T01:18:08.287 に答える
3

同じ方法で row.names を保存しないdata.tableパッケージを使用することもできます( data.table introを参照してください。代わりに行番号で出力されます。

data.table が行名キーでどのように機能するかについては、キーのセクションを参照してください。

data.tableから継承する data.frameため、関数とパッケージが data.frames のみを受け入れる場合data.tableaです。data.frame

例えば

library(data.table)

mydata <- data.table(mydata)
mydata
##      a  b
##  1:  1 11
##  2:  2 12
##  3:  3 13
##  4:  4 14
##  5:  5 15
##  6:  6 16
##  7:  7 17
##  8:  8 18
##  9:  9 19
## 10: 10 20

mydata = mydata[-c(6, 8), ]
mydata
##     a  b
## 1:  1 11
## 2:  2 12
## 3:  3 13
## 4:  4 14
## 5:  5 15
## 6:  7 17
## 7:  9 19
## 8: 10 20
于 2012-09-11T01:49:50.247 に答える