r语言 - 将表的所有列与同一列'reference'进行比较,以查看其中是否有任何列与引用不同



我对R还比较陌生,不知道如何做到这一点。这里有一个类似的链接,我认为:

R-比较列中的值,并使用此比较的结果创建一个新列。有比循环更好的方法吗?

如何使用R将列中的值与上一个值进行比较?

比较列并使用R 查找列的唯一值

    Row     G1        M1        M2        M3            CompareColumn
    1        2         2         2         2                None
    2        1         2         2         2                G1
    3        1         2         2         2                G1
    4        1         3         3         3                G1
    5        3         2         1         3                G1, M1
    6        3         1         1         1                G1
    7        2         2         2         2                None
    8        2         2         2         2                None
    9        1         2         3         1                G1, M2
    10       2         2         3         2                M2

我想将G1、M1和M2的值与M3进行比较。如果其中任何列与M3不同,则在CompareColumn中,打印不同列的名称。

以下是一些可能有帮助的伪代码:

 for each column in row 
 {
   if value in column != M3
     {
     df$CompareColumn = column.name
##when there's already a name, add ", " + column.name
     }
   else 
     {
     df$CompareColumn = None
     }
 }

将想法直接翻译成代码,这可能会有所帮助:

a$CompareColumn <- apply(a[, 2:4] != a[, 5], 1, function(x) ifelse(any(x), paste(colnames(a)[2:4][x], collapse=', '), 'None'))

不过,必须有一些更好的解决方案。

相关内容

  • 没有找到相关文章

最新更新