簡體   English   中英

如何根據R中兩列的特定因素組合對數據框進行子集化?

[英]How to subset dataframe based on specific combination of factors across two columns in R?

sp1.col <- c("A","A","A","A","B","B","B","B","C","C","C","C")
sp1.val <- c(1:12)
sp2.col <- c("A","B","C","D","A","B","C","D","A","B","C","D")
sp2.val <- c(1:12)

df <- data.frame(sp1.col, sp1.val, sp2.col, sp2.val)

我想要對數據框進行子集化,以便 sp1 和 sp2 具有相同的物種名稱,並且消除所有其他行。

所以最終的數據幀應該看起來像

   sp1.col sp1.val sp2.col sp2.val
       A      1       A      1
       B      5       B      5
       C      11      C      11
> with(df,df[sp1.col==sp2.col,])
   sp1.col sp1.val sp2.col sp2.val
1        A       1       A       1
6        B       6       B       6
11       C      11       C      11

我們可以在base R使用subset (不需要包)

subset(df, sp1.col == sp2.col)

-輸出

  sp1.col sp1.val sp2.col sp2.val
1        A       1       A       1
6        B       6       B       6
11       C      11       C      11
library(dplyr)

df %>% 
  filter(sp1.col == sp2.col)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM