【问题标题】:R:Extract duplicate data in two separate columns with variable column lengthsR:提取具有可变列长度的两个单独列中的重复数据
【发布时间】:2020-03-14 19:30:44
【问题描述】:

我有一个矩阵,我只想提取前两列中重复的信息,如下例所示


 Var1 Var2 value
  b    a    100
  e    b     20
  g    c     40
       d     10
       e      5
       f    100
       g     25

新的数据框应如下所示:

Var1 Var2 value
  b    b    20
  e    e     5
  g    g    25

所以我想根据第二列(Var2)获取信息,其编号在第一列(Var1)中重复。

【问题讨论】:

  • 您能提供dput 的数据吗?

标签: r duplicates


【解决方案1】:

我们可以使用intersect 获取Var1Var2 之间的共同值,并使用它从数据帧中获取对应的value

vals <- intersect(df$Var1, df$Var2)
data.frame(Var1 = vals, Var2 = vals, Var3 = df$value[df$Var2 %in% vals])
#Or with match
#data.frame(Var1 = vals, Var2 = vals, Var3 = df$value[match(vals, df$Var2)])

#  Var1 Var2 Var3
#1    b    b   20
#2    e    e    5
#3    g    g   25

数据

df <- structure(list(Var1 = structure(c(2L, 3L, 4L, 1L, 1L, 1L, 1L), 
.Label = c("", "b", "e", "g"), class = "factor"), 
Var2 = structure(1:7, .Label = c("a", "b", "c", "d", "e", "f", "g"), 
class = "factor"), value = c(100L, 20L, 40L, 10L, 5L, 100L, 25L)), 
class = "data.frame", row.names = c(NA, -7L))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-21
    • 2011-07-17
    • 1970-01-01
    • 2017-10-06
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    相关资源
    最近更新 更多