我如何知道具有特定条件的行数?在 R
How can I know the number of the row that has specific conditions? In R
我有这个数据框:
d <- structure(list(a = c(1, 66, 58, 0, 91, 37), b = c(44, 0, 75,
11, 0, 32), c = c(0, 81, 0, 53, 25, 13)), class = "data.frame", row.names = c(NA,
-6L))
我需要知道每一列第一个零的位置(行号)。在这种情况下,结果应该是
4, 2, 1
我该怎么办?感谢您的帮助!
这是一种方法:
sapply(d, function(x) which(x==0)[1])
# a b c
# 4 2 1
您可以使用 max.col
:
max.col(t(d) == 0, "first")
如果你只有正值,你也可以这样做:
sapply(d, which.min)
# [1] 4 2 1
另一个可能的解决方案:
apply(d, 2, function(x) which.max(x == 0))
#> a b c
#> 4 2 1
我有这个数据框:
d <- structure(list(a = c(1, 66, 58, 0, 91, 37), b = c(44, 0, 75,
11, 0, 32), c = c(0, 81, 0, 53, 25, 13)), class = "data.frame", row.names = c(NA,
-6L))
我需要知道每一列第一个零的位置(行号)。在这种情况下,结果应该是
4, 2, 1
我该怎么办?感谢您的帮助!
这是一种方法:
sapply(d, function(x) which(x==0)[1])
# a b c
# 4 2 1
您可以使用 max.col
:
max.col(t(d) == 0, "first")
如果你只有正值,你也可以这样做:
sapply(d, which.min)
# [1] 4 2 1
另一个可能的解决方案:
apply(d, 2, function(x) which.max(x == 0))
#> a b c
#> 4 2 1