【问题标题】:how to check if a different values are greater than different data frame rows in R?如何检查不同的值是否大于 R 中的不同数据框行?
【发布时间】:2021-09-22 09:12:02
【问题描述】:

我有一个数据框

df1   =data.frame(a=c(100,200,150,NA),
                 b=c(300,40,90,30),
                 c=c(12,500,1000,2))

df2 = data.frame(s= c(150,300,80,15))

我需要检查 df1 的值是否大于 df2$s wrt 行。
例如。 150 将与第一行进行比较,即 df 的 (100,300,12) 将导致 (F, T, F)。
同样 300 到第 2 行,依此类推

所需输出

result_df =  data.frame(a=c(F,F,T,F),
                        b=c(T,F,T,T),
                        c=c(F,T,T,F))
   

可以在循环中完成,但是有更快的方法吗?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    我们可以复制以使长度相同并进行比较

    df1 > df2[row(df1)] & !is.na(df1)
    

    -输出

          a     b     c
    [1,] FALSE  TRUE FALSE
    [2,] FALSE FALSE  TRUE
    [3,]  TRUE  TRUE  TRUE
    [4,] FALSE  TRUE FALSE
    

    或者也可以从'df2'中提取列直接进行比较

    df1 >df2$s & !is.na(df1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      相关资源
      最近更新 更多