R-类似于重复的功能,可删除所有重复的实例

时间:2020-04-16 15:07:26

标签: r

假设我们有以下内容:

c("A", "A", "B") %>% 
   cbind(1:3) %>% 
   data.frame() -> testdf

我们要从数据框中删除第一个变量中存在重复项的所有实例。通常我们会使用这样的东西:

testdf2 <- testdf[!duplicated(testdf$.),]

但是,testdf2看起来像这样:

. V2
A  1
B  3

这不是我想要的-因为值A被重复,所以我想删除所有在第一个变量中具有A的情况。我希望我的输出像这样:

. V2
B  3

有一个函数可以产生这个吗?

4 个答案:

答案 0 :(得分:6)

尝试testdf[!duplicated(testdf$.)&!duplicated(testdf$.,fromLast = TRUE),]

答案 1 :(得分:3)

另一个library(shiny) js <- ' $(document).on("shiny:connected", function(){ alert("Loaded"); Shiny.setInputValue("loaded", 1); Shiny.addCustomMessageHandler("focus", function(x){ $("#select ~ .selectize-control > .selectize-input").click(); }); }); ' ui <- fluidPage( tags$head(tags$script(HTML(js))), headerPanel("Focus", windowTitle = "Focus"), fluidRow( column(width = 2, class = "panel", selectInput("select", label = "Your Choice", choices = c("Choice 1", "Choice 2"), selectize = TRUE), actionButton("click", "Click") ), column(width = 10, textOutput("text") ) ) ) server = function(input, output, session) { observeEvent(input$loaded, { session$sendCustomMessage("focus", list(NULL)) print("Loaded") }) observeEvent(input$select, { print("Selected") }) observeEvent(input$click, { session$sendCustomMessage("focus", list(NULL)) print("Clicked") }) output$text <- renderText({ }) } shinyApp(ui = ui, server = server) 替代名称(保留行名):

base

答案 2 :(得分:2)

如果要坚持使用管道

 testdf %>% group_by(testdf$.) %>% summarise(num_x=n()) %>% filter(num_x==1)

答案 3 :(得分:1)

我们可以将subsettable一起使用

subset(testdf, `.` %in% names(which(table(`.`) == 1)))
# . V2
#3 B  3