gpt4 book ai didi

R:如何删除data.frame中的某些行

转载 作者:行者123 更新时间:2023-12-04 12:33:34 27 4
gpt4 key购买 nike

> data = data.frame(a = c(100, -99, 322, 155, 256), b = c(23, 11, 25, 25, -999))
> data
a b
1 100 23
2 -99 11
3 322 25
4 155 25
5 256 -999

对于这样的 data.frame,我想删除包含 -99 或 -999 的任何行。所以我生成的 data.frame 应该只包含第 1、3 和 4 行。

我正在考虑为此编写一个循环,但我希望有一种更简单的方法。 (如果我的 data.frame 包含 a-z 列,那么循环方法将非常笨拙)。我的循环可能看起来像这样
i = 1
for(i in 1:nrow(data)){
if(data$a[i] < 0){
data = data[-i,]
}else if(data$b[i] < 0){
data = data[-i,]
}else data = data
}

最佳答案

 data [ rowSums(data == -99 | data==-999) == 0 , ]
a b
1 100 23
3 322 25
4 155 25

“==”和“|” (OR) 运算符将数据帧作为矩阵进行操作,返回相同维度的逻辑对象,因此 rowSums 可以成功。

关于R:如何删除data.frame中的某些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304723/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com