簡體   English   中英

比較R中的兩個數據幀項

[英]Compare two data frames items in R

我有兩個數據框,都有一列:

DF1

Server
A
B
c
d

DF2

Server
a
f
z
x

我需要檢查df2 $ Server中是否存在df1 $ Server。 如果是,我需要在df1中添加一個列並將其他1放入0。

我有這個代碼,我認為算法是正確的,但它似乎沒有工作。 任何輸入都表示贊賞。

for (i in 1:nrow(df1)) {
    if (df1[i,1] %in% row.names(df2)) {
        df1[i,2]<-c(1)
    } else{
        df1[i,2]<-(0)
    }
}

它比你做的簡單:

df1$LogicalColumn <- as.numeric(df1$Server==df2$Server)

這將按每列排序並檢查成對相等性。

df1$LogicalColumn <- as.numeric(df1$Server %in% df2$Server)

這將檢查df1$Server每個值的df2列的所有值。 如果它確實是您關注的rownames(為什么?),請在任一上下文中將df2$Server替換df2$Server rownames(df2)

默認行名稱將是數字,除非您已分配它們:

  Server
1      a
2      b
3      c
4      d
5      e

> row.names(df3)
[1] "1" "2" "3" "4" "5"

你想要的是比較值,而不是行的名稱:

for (i in 1:nrow(df1)) {
  if (df1[i,1] %in% df2$Server) {
    df1[i,2]<-c(1)
  } else{  
    df1[i,2]<-(0)
  }            
}

暫無
暫無

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

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