繁体   English   中英

通过行名取消选择一组行

[英]deselect a group of rows by their rowname

我想按行名取消选择一组行

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM