1

行名で行のグループを選択解除したい

A <- data.frame(c("a","b","c"),c("d","e","f"))
rownames(A) <- c("RA","RB","RC")

しかし

A[-"RA",]

エラーを与える

4

2 に答える 2

5

試してみてくださいsetdiff

あなたのデータ (より良い列名):

> A <- data.frame(V1 = c("a","b","c"), V2 = c("d","e","f"))
> rownames(A) <- c("RA","RB","RC")
> A
   V1 V2
RA  a  d
RB  b  e
RC  c  f

あなたが試したことと、結果のエラー:

> A[-"RA",]
Error in -"RA" : invalid argument to unary operator

利用するsetdiff

> A[setdiff(rownames(A), "RA"), ]
   V1 V2
RB  b  e
RC  c  f
于 2013-04-29T19:12:09.410 に答える
2

data.table探しているものに非常に近い構文を提供します。行名の代わりに、列を作成し (以下の例では「info」と呼びます)、その列をキーに設定します。次に、次のことができます。

library(data.table)
A = data.table(c("a","b","c"), c("d","e","f"), info=c("RA","RB","RC"),
               key = "info")
#   V1 V2 info
#1:  a  d   RA
#2:  b  e   RB
#3:  c  f   RC

A["RA"]
#   info V1 V2
#1:   RA  a  d

A[!"RA"]
#   V1 V2 info
#1:  b  e   RB
#2:  c  f   RC
于 2013-04-29T20:08:22.667 に答える