【问题标题】:Addining row number of sub dataframe添加子数据帧的行号
【发布时间】:2015-09-21 08:43:02
【问题描述】:

我有以下数据框:

> df1
  var1 var2 var3
1   ac   bc   bc
2   bc   bc   cc
3   dc   ec   dc
4   gc   gc   gc

我有一个来自上述 df1 的子数据框(4 行中只剩下 2 行):

> df2
  var1 var2 var3
2   bc   bc   cc
3   dc   ec   dc

我想将 df2 的数字转换为 r (r = 2,3)。 此外,我想向 df1 添加一个新列,该列将用 1 指示该行存在于 df2 中。 在最终的 df1 中将如下所示:

> df1
  var1 var2 var3 df2
1   ac   bc   bc  0
2   bc   bc   cc  1
3   dc   ec   dc  1
4   gc   gc   gc  0

我该怎么做?

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以使用%in%来比较'df1'和'df2'的行名。我们得到一个逻辑向量,它可以通过+ 包装强制转换为二进制格式。

     df1$newcol <- +(rownames(df1) %in% rownames(df2))
     df1
     #  var1 var2 var3 newcol
     #1   ac   bc   bc      0
     #2   bc   bc   cc      1
     #3   dc   ec   dc      1
     #4   gc   gc   gc      0
    

    如果我们需要常用的行名,请使用intersect

    intersect(rownames(df1), rownames(df2))
    #[1] "2" "3"
    

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2018-03-09
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      相关资源
      最近更新 更多