r - 通过基于 R 中向量的值选择行的新子集

标签 r

我有一个数据集 U1,我在它上面运行一个分类器并得到一个标签向量

pred.U1.nb.c <- predict(NB.C, U1[,2:6])
table(pred.U1.nb.c)
pred.U1.nb.c
    S unlabeled 
  148      5852 
> head(pred.U1.nb.c)
  [1] S S S S S S
  Levels: S unlabeled

现在我想拉出那些在 U1.S 中被归类为 S 的 U1 行。执行此操作的最有效方法是什么?

最佳答案

James 的答案具有优雅的经济性,并且肯定会在此示例中正常工作,但是如果测试向量具有任何 NA,则很容易出现不良结果。 (我被咬了很多次,很困惑。)这里有两种更安全的方法可以避免 "["函数的包含 NA 的行为:

U1[which(pred.U1.nb.c=="S"), ]

这会将逻辑向量(可能带有 NA)转换为没有 NA 的数值向量。也可以使用子集:
subset(U1 ,pred.U1.nb.c=="S")

编辑:我怀疑使用 grepl 也可以避免 NA 问题。也许:
U1[grepl("^S$", pred.U1.nb.c), ]

关于r - 通过基于 R 中向量的值选择行的新子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269944/

相关文章:

r - 将列值粘贴到另一列

r - 根据 p 值截止值匹配相关矩阵中的信息

oop - 答: 什么是老虎机?

运行 Map 减少矩阵的维数

r - 使用 tidyverse 创建一个以恒定速率增加的列

r - R 如何解释...参数?

r - 警告 : non-integer #successes in a binomial glm!(调查包)

regex - 如何使用R代码找出句子中的连续单词

R 根据事件更新值

r - 连续两次增加数字 R 后计数器开始