首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当因子在R中采用特定值时,如何从data.frame中删除行

当因子在R中采用特定值时,如何从data.frame中删除行
EN

Stack Overflow用户
提问于 2020-08-19 12:22:19
回答 2查看 56关注 0票数 1

我正在研究R中的一个汽车数据集,因为我有一个名为fuel的列,它属于类元素。因此,汽车的总数分布在5种类型。我想从那一栏中删除3种类型。一个例子如下:

代码语言:javascript
复制
fuel:  
 CNG     :  40                                                                                      
 Diesel  :2133   
 Electric:   1   
 LPG     :  23                          
 Petrol  :2120

如何用一个命令删除因子级别CNGElectricLPG

我试过如下所示,它可以工作,但我认为有更好的方法,比如使用1行命令。

1.

代码语言:javascript
复制
car <- car[!car$fuel == "CNG", ]
car <- car[!car$fuel == "Electric", ]
car <- car[!car$fuel == "LPG", ]

我也试过这样做,但这不起作用,为什么下面的命令不起作用?

2.

代码语言:javascript
复制
car <- car[!car$fuel == "CNG"||"Electric"||"LPG", ]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-19 12:26:35

一个共同的解决方案是这样的:

代码语言:javascript
复制
car[!(car$fuel %in% c("CNG", "Electric", "LPG")), ]

第二个解决方案要起作用,首先您需要使用|而不是||,因为您处理的是向量。其次,您需要声明要实现的逻辑测试,这样R才能理解:

代码语言:javascript
复制
car[!(car$fuel == "CNG" | car$fuel == "Electric" | car$fuel == "LPG"), ]

它被德摩根定律简化了

代码语言:javascript
复制
car[car$fuel != "CNG" & car$fuel != "Electric" & car$fuel != "LPG", ]
票数 2
EN

Stack Overflow用户

发布于 2020-08-19 13:55:53

要添加到sindri_baldur解决方案中,可以像这样使用subset

代码语言:javascript
复制
# simulate data
set.seed(2)
n <- 12
car <- data.frame(fuel = factor(
  sample.int(5, size = n, replace = TRUE), 
  labels = c("CNG", "Electric", "LPG", "Gas", "Unknown")), 
  id = 1:n)

# show alternative solution
subset(car, fuel != "CNG" & fuel != "Electric" & fuel != "LPG")
#R>      fuel id
#R> 1 Unknown  1
#R> 3 Unknown  3
#R> 5     Gas  5
#R> 6 Unknown  6

subset(car, !fuel %in% c("CNG", "Electric", "LPG"))
#R>      fuel id
#R> 1 Unknown  1
#R> 3 Unknown  3
#R> 5     Gas  5
#R> 6 Unknown  6

第二个版本失败了,因为您使用的是||而不是|。请参阅help("Logic", package = "base"),特别是,

&&&表示逻辑,|||表示逻辑OR。较短的表单以与算术运算符相同的方式执行元素级比较。较长的表单从左到右计算,只检查每个向量的第一个元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63486833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档