[英]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.