如何从包含至少一个 NaN 的 R 数据框中删除行?
NA 值和 NaN 值本质上非常不同,因此,删除包含 NA 值的行与删除包含 NaN 值的行不同。例如,如果我们有一个包含 NaN 值的数据框,将使用is.finite以下示例中所示的函数删除行。
考虑以下数据框 -
示例
x1<-sample(c(NaN,rpois(4,5)),20,replace=TRUE)输出结果x2<-sample(c(NaN,rpois(4,5)),20,replace=TRUE)
df1<-data.frame(x1,x2)
df1
x1 x21 2 2
2 2 3
3 0 6
4 2 3
5 2 2
6 8 NaN
7 2 3
8 8 NaN
9 2 2
10 NaN 2
11 2 2
12 NaN 6
13 8 6
14 NaN 3
15 NaN 6
16 NaN NaN
17 8 NaN
18 8 2
19 NaN 3
20 NaN 3
从 df1 中删除包含 NaN 值的行 -
df1[is.finite(df1$x1) & is.finite(df1$x2),]
x1 x21 2 2
2 2 3
3 0 6
4 2 3
5 2 2
7 2 3
9 2 2
11 2 2
13 8 6
18 8 2
示例
y1<-sample(c(NaN,rnorm(2)),20,replace=TRUE)输出结果y2<-sample(c(NaN,rnorm(2)),20,replace=TRUE)
y3<-sample(c(NaN,rnorm(2)),20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2
y1 y2 y31 NaN 0.3324506 -0.5461648
2 0.3319275 -0.3103766 -0.5461648
3 1.5624962 0.3324506 -0.3322423
4 NaN -0.3103766 -0.3322423
5 1.5624962 NaN NaN
6 NaN -0.3103766 -0.3322423
7 1.5624962 0.3324506 NaN
8 0.3319275 -0.3103766 -0.3322423
9 NaN -0.3103766 -0.3322423
10 1.5624962 NaN NaN
11 0.3319275 NaN NaN
12 1.5624962 0.3324506 -0.3322423
13 1.5624962 NaN NaN
14 NaN 0.3324506 NaN
15 1.5624962 0.3324506 -0.5461648
16 1.5624962 -0.3103766 -0.3322423
17 NaN 0.3324506 -0.5461648
18 NaN 0.3324506 -0.3322423
19 0.3319275 -0.3103766 -0.5461648
20 0.3319275 NaN -0.3322423
从 df2 中删除包含 NaN 值的行 -
df2[is.finite(df2$y1) & is.finite(df2$y2) & is.finite(df2$y3),]
y1 y2 y32 0.3319275 -0.3103766 -0.5461648
3 1.5624962 0.3324506 -0.3322423
8 0.3319275 -0.3103766 -0.3322423
12 1.5624962 0.3324506 -0.3322423
15 1.5624962 0.3324506 -0.5461648
16 1.5624962 -0.3103766 -0.3322423
19 0.3319275 -0.3103766 -0.5461648
以上是 如何从包含至少一个 NaN 的 R 数据框中删除行? 的全部内容, 来源链接: utcz.com/z/350517.html