我想识别并标记基于2列的重复行。我想为每个重复项创建唯一的标识符,因此我不仅知道该行是重复项,而且还知道它与哪一行是重复项。我有一个如下所示的数据框,其中包含一些重复的项对(适合和坐着)和其他不重复的对。当项目对重复时,它们包含的信息是唯一的(例如,一行将在Value1中保留1行的值,但不包含Value2和Value 3,第二行或“重复”行仅具有Value2和Value3的数字)不是Value1)
当前数据框
value1 value2 value3 fit sit
[1,] "1" NA NA "it1" "it2"
[2,] NA "3" "2" "it2" "it1"
[3,] "2" "3" "4" "it3" "it4"
[4,] NA NA NA "it4" "it3"
[5,] "5" NA NA "it5" "it6"
[6,] NA NA "2" "it6" "it5"
[7,] NA "4" NA "it7" "it9"
代码生成示例数据框
value1<-c(1,NA,2,NA,5,NA,NA)
value2<-c(NA,3,3,NA,NA,NA, 4)
value3<-c(NA,2,4,NA,NA,2, NA)
fit<-c("it1","it2","it3","it4", "it5", "it6","it7")
sit<-c("it2","it1","it4","it3", "it6", "it5", "it9")
df.now<-cbind(value1,value2,value3, fit, sit)
我想要的是将其转换为如下所示的数据框:
所需的数据框
val1 val2 val3 it1 it2
[1,] "1" "3" "2" "it1" "it2"
[2,] "2" "3" "4" "it3" "it4"
[3,] "5" NA "2" "it5" "it6"
[4,] NA "4" NA "it7" "it9"
我正在考虑执行以下步骤:1.使用fit创建新变量,并与最低项目和最高项目坐在一起以识别重复的对2.识别重复的项目对3.使用ifelse选择并填写唯一信息。
我知道如何执行第1步和第3步,但仍停留在第2步。我想我需要做的不仅是识别TRUE / FALSE重复项,还需要为每个项目对创建一个具有唯一标识符的列,如下所示:由于我的步骤1)多了2行:
value1 value2 value3 fit sit lit hit dup
[1,] "1" NA NA "it1" "it2" "it1" "it2" 1
[2,] NA "3" "2" "it2" "it1" "it1" "it2" 1
[3,] "2" "3" "4" "it3" "it4" "it3" "it4" 2
[4,] NA NA NA "it4" "it3" "it3" "it4" 2
[5,] "5" NA NA "it5" "it6" "it5" "it6" 3
[6,] NA NA "2" "it6" "it5" "it5" "it6" 3
[7,] NA "4" NA "it7" "it9" "it7" "it9" NA
我不确定该怎么做。
我要的是对步骤2有所帮助,或者有比我概述的步骤更好的解决方法。