【问题标题】:for if else loop - fill values in column based on matching columns from separate dataframes [duplicate]for if else 循环-根据来自不同数据帧的匹配列填充列中的值[重复]
【发布时间】:2016-06-17 17:13:15
【问题描述】:

我有两个数据框。

df1

ID  Name   
A1  Dave
B2  Bob
C1  Sheila   
D1  Tim   


df2

ID   Focal
A1      0
B1      0
C1      0
D1      0
E1      0
F1      0

如果 df1$ID 中的值与 df2$ID 匹配,我想用 1 填充“Focal”列。

我试过循环它:

for (i in 1:length(df2)){
  if (df1$ID[i] == df2$ID[i]){df2$Focal[i] = 1}
  else {df2$Focal[i] = 0}
}

但会出错,说水平组的因素是不同的。

【问题讨论】:

    标签: r loops if-statement


    【解决方案1】:

    我们可以使用%in%

    df2$Focal <- as.integer(df2$ID %in% df1$ID)
    

    【讨论】:

      猜你喜欢
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多