行名で行のグループを選択解除したい
A <- data.frame(c("a","b","c"),c("d","e","f"))
rownames(A) <- c("RA","RB","RC")
しかし
A[-"RA",]
エラーを与える
行名で行のグループを選択解除したい
A <- data.frame(c("a","b","c"),c("d","e","f"))
rownames(A) <- c("RA","RB","RC")
しかし
A[-"RA",]
エラーを与える
試してみてください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
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