Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除R中的重复行,即使顺序不同_R - Fatal编程技术网

删除R中的重复行,即使顺序不同

删除R中的重复行,即使顺序不同,r,R,这感觉应该是显而易见的,但我真的没有看到 下面是我正在处理的数据类型的一个小示例: x1 <- as.character(c("Apple", "Banana", "Cat", "Dog", "Orange")) x2 <- as.character(c("Banana", "Orange", "Dog", "Cat", "Apple")) x3 <- as.character(c("Orange", "Apple", NA, NA, "Banana")) g

这感觉应该是显而易见的,但我真的没有看到

下面是我正在处理的数据类型的一个小示例:

x1 <- as.character(c("Apple", "Banana", "Cat", "Dog", "Orange"))
x2 <- as.character(c("Banana", "Orange", "Dog", "Cat", "Apple"))
x3 <- as.character(c("Orange", "Apple", NA, NA, "Banana"))         
groups <- data_frame(x1, x2, x3)

x1我不知道您的示例数据是否为我们提供了您需要帮助的示例,但这里有一个技巧。正如注释中提到的其他工具一样,大多数工具都会跨行查找唯一的对。如果配对不重要,您可以执行以下操作:

    library(dplyr)

    x1 <- as.character(c("Apple", "Banana", "Cat", "Dog", "Orange"))
    x2 <- as.character(c("Banana", "Orange", "Dog", "Cat", "Apple"))
    x3 <- as.character(c("Orange", "Apple", NA, NA, "Banana"))         
    groups <- data_frame(x1, x2, x3)

    groups %>% 
       mutate_all(sort, na.last = TRUE) %>% 
       unique()
库(dplyr)

x1在以合理的方式重新排列数据后,您可以使用
复制的
。一种明智的方法是为每种水果和动物设置
TRUE/FALSE
值:与其设置
x1
“dog”
,不如设置
dog
TRUE
。例如,可以这样做:

g <- na.omit(unique(unlist(groups)))
df <- t(apply(as.matrix(groups), 1, function(x) g %in% x))
# if needed, you could make the `df` human-readable:
df <- setNames(as.data.frame(df), g)
duplicated(df)

g您可能需要某种键/值匹配对您的数据没有重复项,假设(因为这是一个
data.frame
)列不同。如果这些列没有任何意义(因此
Dog,Cat
Cat,Dog
相同),那么您可能应该看到Yes,这些列基本上没有意义。看起来链接上的答案对最初的提问者不起作用,但我会探究。要给人留下这样的印象,我必须找到一条迂回的道路。
x1 <- as.character(c("Apple", "Banana", "Cat", "Dog", "Orange"))
x2 <- as.character(c("Banana", "Orange", "Dog", "Cat", "Apple"))
x3 <- as.character(c("Orange", "Apple", NA, NA, "Banana"))         
groups <- data.frame(x1, x2, x3, stringsAsFactors=FALSE)