首先,我想指出所有你复制的问题猎人,这个问题并没有完全回答我的问题.
现在,我有一个阵列.我们会说阵列是array(1, 2, 2, 3, 4, 3, 2)
我需要删除重复项.不只是其中一个重复,而是全部,所以结果将是array(1, 4)
我查看了array_unique(),但这只会导致array(1, 2, 3, 4)
有任何想法吗?
我想删除在矢量中出现多次的所有项目.具体来说,这包括字符,数字和整数向量.目前,我正在使用duplicated()
向前和向后(使用fromLast
参数).
是否有更高计算效率(更快)的方法在R中执行此操作?下面的解决方案很简单,可以写入/读取,但执行重复搜索两次似乎效率低下.也许使用额外数据结构的基于计数的方法会更好?
例:
d <- c(1,2,3,4,1,5,6,4,2,1)
d[!(duplicated(d) | duplicated(d, fromLast=TRUE))]
#[1] 3 5 6
Run Code Online (Sandbox Code Playgroud)
我熟悉闪亮的基础知识但在这里挣扎.我希望能够在点击一个点时添加ggplot图层以突出显示该点.我知道这是可能的ggvis和画廊中有一个很好的例子,但我希望能够nearPoints()
用来捕获点击作为ui输入.
我尝试了一些东西(见下文),它与ggplot图层分开显示然后消失.我已尝试过各种编辑reactive()
,eventReactive()
依此类推.
任何帮助深表感谢...
library(shiny)
library(ggplot2)
shinyApp(
ui = shinyUI(
plotOutput("plot", click = "clicked")
),
server = shinyServer(function(input, output) {
output$plot <- renderPlot({
ggplot(mtcars, aes(x = mpg, y = wt)) +
geom_point() +
geom_point(data = nearPoints(mtcars, input$clicked), colour = "red", size = 5)
})
})
)
Run Code Online (Sandbox Code Playgroud)
我想我从概念上理解为什么这不起作用.该图具有依赖性,input$clicked
这意味着当input$clicked
更改时,图重新渲染,但这又会重置input$clicked
.有点抓人22的情况.
我有这种情况.多个data.table"rbinded".
library(data.table)
x <- data.table(id=c(1,2,3,4),dsp=c(5,6,7,8),status=c(FALSE,TRUE,FALSE,TRUE))
y <- data.table(id=c(1,2,3,4),dsp=c(6,6,7,8),status=c(FALSE,FALSE,FALSE,TRUE))
z <- data.table(id=c(1,2,3,4),dsp=c(5,6,9,8),status=c(FALSE,TRUE,FALSE,FALSE))
w <- data.table(id=c(1,2,3,4),dsp=c(5,6,7,NA),status=c(FALSE,TRUE,FALSE,TRUE))
setkey(x,id)
setkey(y,id)
setkey(z,id)
setkey(w,id)
Bigdt<-rbind(x,y,z,w)
Run Code Online (Sandbox Code Playgroud)
我想只获取不重复的行,如:
id dsp status
1 6 FALSE
2 6 FALSE
3 9 FALSE
4 8 FALSE
4 NA TRUE
Run Code Online (Sandbox Code Playgroud)
所以我试过了
Resultdt<-Bigdt[!duplicated(Bigdt)]
Run Code Online (Sandbox Code Playgroud)
但结果是:
id dsp status
1 5 FALSE
2 6 TRUE
3 7 FALSE
4 8 TRUE
Run Code Online (Sandbox Code Playgroud)
与我的期望不符.我尝试了不同的方法(因为rbind不是强制性的),例如merge,join等,data.table包似乎可能是包含解决方案的那个......显然.有任何想法吗?
我有一个像这样的向量:
x = c(1,2,3,4,5,6,4,5,6,7)
> x
[1] 1 2 3 4 5 6 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
我想摆脱重复并得到这样的东西:
> [1] 1 2 3 7
Run Code Online (Sandbox Code Playgroud)
我的尝试
y = x[duplicated(x)]
> y
[1] 4 5 6
> x[x!=y]
[1] 1 2 3 7
Warning message:
In x != y : longer object length is not a multiple of shorter object length
>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我应该担心这个错误吗?
还有另一种方法可以做到而不会出错吗?
我想保留矢量中的非重复值,但不保留重复值中的一个元素。unique()对此不起作用。都不会重复()。
例如:
> test <- c(1,1,2,3,4,4,4,5,6,6,7,8,9,9)
> unique(test)
[1] 1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)
而我希望结果是:2,3,5,7,8
关于如何解决这个问题的任何想法?谢谢!
我想在数据集中查找所有列(除了一列)中的值都匹配的行。在尝试多次尝试让duplicated() 返回重复行的所有实例(不仅仅是第一个实例)失败后,我想出了一种方法来做到这一点(如下)。
例如,我想识别 Iris 数据集中除 Petal.Width 之外的所有相等的行。
require(tidyverse)
x = iris%>%select(-Petal.Width)
dups = x[x%>%duplicated(),]
answer = iris%>%semi_join(dups)
> answer
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.1 1.5 0.1 setosa
3 4.8 3.0 1.4 0.1 setosa
4 5.1 3.5 1.4 0.3 setosa
5 4.9 3.1 1.5 0.2 setosa
6 4.8 3.0 1.4 0.3 setosa
7 5.8 2.7 5.1 1.9 virginica
8 6.7 3.3 5.7 2.1 virginica
9 6.4 2.8 5.6 2.1 virginica
10 6.4 …
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多数据帧的List.每个数据框都包含重复的列.我想只返回每个数据帧中的唯一列.我尝试了几个代码,包括下面的代码,但仍然会出错.我目前使用的代码如下,并列出了我的列表中第一个数据帧的描述.我感谢任何帮助.
x <- lapply(dataFiles, function(x){
for(i in 1:length(colnames(dataFiles)))
dataFiles[[!duplicated(dataFiles[[i]])]]
}
)
str(dataFiles[[1]])
'data.frame': 20381 obs. of 10 variables:
$ FILEID : chr "ACSSF" "ACSSF" "ACSSF" "ACSSF" ...
$ FILETYPE : num 2.01e+08 2.01e+08 2.01e+08 2.01e+08 2.01e+08 ...
$ STUSAB : chr "ny" "ny" "ny" "ny" ...
$ CHARITER : int 0 0 0 0 0 0 0 0 0 0 ...
$ SEQUENCE : int 1 1 1 1 1 1 1 1 1 1 ...
$ LOGRECNO : int …
Run Code Online (Sandbox Code Playgroud) 如果我有这样的 df
data<-data.frame(id=c(1,1,3,4),n=c("x","y","e","w"))
data
id n
1 1 x
2 1 y
3 3 e
4 4 w
Run Code Online (Sandbox Code Playgroud)
我想得到一个这样的新 df:
data
id n
3 3 e
4 4 w
Run Code Online (Sandbox Code Playgroud)
也就是说,我希望它删除所有重复的行。我试过像distinct
fromdplyr
这样的函数,但它总是得到重复行之一。
我正在寻找一种从向量中删除所有重复元素的方法,包括参考元素。通过参考元件我的意思是这是目前用在比较中,要搜索其重复的元素。例如,如果我们考虑这个向量:
a = c(1,2,3,3,4,5,6,7,7,8)
Run Code Online (Sandbox Code Playgroud)
我想获得:
b = c(1,2,4,5,6,8)
Run Code Online (Sandbox Code Playgroud)
我知道的duplicated()
和unique()
,但他们没有提供我正在寻找的结果。
如果我有一个矢量:
x <- c(5, 6, 2, 9, 5, 2, 1, 9, 9)
Run Code Online (Sandbox Code Playgroud)
如何创建包含从未重复过的元素的另一个向量?在这种情况下,它将是:( c(6, 1)
因为重复了5,2和9)
r ×10
duplicates ×2
vector ×2
arrays ×1
data.table ×1
dataframe ×1
filter ×1
ggplot2 ×1
list ×1
performance ×1
php ×1
shiny ×1
tidyverse ×1
unique ×1