基于两列创建新列

时间:2015-11-18 21:51:17

标签: r loops dataframe

我在数据框中有两个文本列,我想创建第三列,如果两列相同则置为TRUE,否则置为FALSE。现在,下面的代码将在数据帧中添加一个新的colunmn,但它是所有NA。我需要弄清楚如何做一个if then语句,以便它返回除NA之外的其他东西。基本上它就像在Excel中,您可以使用=符号并指向两列,然后返回TRUE或FALSE。任何人都可以帮助我吗?

combinedData$SourceAgree<-combinedData[combinedData$Source==combinedData$SouceID]

1 个答案:

答案 0 :(得分:0)

替代方法:

combinedData <- data.frame(Source=1:4,
                           SourceID=c(5,6,3,4))
combinedData$SourceAgree <- ifelse(
  combinedData$Source==combinedData$SourceID, TRUE, FALSE)
within(combinedData, {
  Agree <- Source==SourceID})

,并提供:

  Source SourceID SourceAgree Agree
1      1        5       FALSE FALSE
2      2        6       FALSE FALSE
3      3        3        TRUE  TRUE
4      4        4        TRUE  TRUE