R编程在大于的列表中找到第一个条目



假设我们有一个表x:

V1   V2   V3     
1    8    18      
95   36  -40     
-67 -68  -27     
192   2   9    
160  105  36

我想找到V1的第一排,它大于100。在我们的例子中,192是第一个大于100的数字。所以我想得到4作为输出,因为192是V1中的第4行。

我怎样才能做到这一点?我试过这个:

for (i in 1:length(x$v1){
if(x[1,i]>=100){
print(i)
break}    
}

但它没有起作用。R编译器这样说:

Error in if (x[1, i] >= 100) print(i) : argument is of length zero
>         break    
Error: no loop for break/next, jumping to top level
> }
Error: unexpected '}' in "}"

我能做什么?

我们可以使用max.col获得每行第一个条目的列索引

j1 = max.col(df1 > 100, 'first')
j2 = j1 * NA^!rowSums(df1 > 100)

然后使用行/列索引提取值

na.omit(df1[cbind(seq_len(nrow(df1)), j2)])[1]
#[1] 192

如果我们只检查第一列,则可以使用which.max

which.max(df1$V1 > 100)

使用更改循环

for (i in 1:length(df[,1])){
if(df[i,1]>=100){
print(i)
break}    
}

相关内容

最新更新