我有一個資料框架
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的行數。 比如說。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))
它可以在回圈中完成,但有沒有更快的方法呢?
uj5u.com熱心網友回復:
我們可以通過復制來使長度相同并進行比較
df1 > df2[row(df1)] &。 ! is.na(df1)
輸出
a b c
[/span>1。 ] FALSE TRUE FALSE
[/span>2。 ] FALSE FALSE TRUE
[/span>3。 ] TRUE TRUE TRUE TRUE
[/span>4, ] FALSE TRUE FALSE
或者也可以從'df2'中提取該列并直接進行比較
df1 >df2$s & ! is.na(df1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334046.html
標籤:
上一篇:使用來自JSON的值連接表
