如何获得;世卫组织';“不一样”;在向量中,使用R
简单的问题。考虑这个向量:如何获得;世卫组织';“不一样”;在向量中,使用R,r,R,简单的问题。考虑这个向量: [1] 378 380 380 380 380 360 187 380 我们如何确定哪些数字与该列表中的其他数字不同?在这种情况下,它将是378 360和187。有什么想法吗?我知道解决方案可能并不简单 我正在学习R并为我的研究工作一个数据集,所以它是!=家庭作业 任何帮助都将不胜感激 提取未重复的元素可以通过以下方法完成: a<-c(378, 380, 380, 380, 380, 360, 187, 380) b <- table(a) names(
[1] 378 380 380 380 380 360 187 380
我们如何确定哪些数字与该列表中的其他数字不同?在这种情况下,它将是378 360和187。有什么想法吗?我知道解决方案可能并不简单
我正在学习R并为我的研究工作一个数据集,所以它是!=家庭作业
任何帮助都将不胜感激 提取未重复的元素可以通过以下方法完成:
a<-c(378, 380, 380, 380, 380, 360, 187, 380)
b <- table(a)
names(b[b==1])
#[1] "187" "360" "378"
a通过使用table()
和which.max()
可以找到最频繁的条目,然后可以使用包含不相等条目的逻辑向量对原始向量进行索引,如:data[data!=mostfrequent]。您可以通过?table()
和?which.max()
获得帮助,如果需要更多帮助,请发表评论
你的样本向量
x <- c(378, 380, 380, 380, 380, 360, 187, 380)
which.max
允许我们定位模态值(最常见的一个)
另一种方法:
x <- c(378, 380, 380, 380, 380, 360, 187, 380)
y <- rle(sort(x)); y[[2]][y[[1]]==1]
x可能是另一种选择:
x <- c(378, 380, 380, 380, 380, 360, 187, 380)
setdiff(unique(x), x[duplicated(x)])
x恭喜你!你问了第10000个用R语言标记的问题。可悲的是,唯一的奖品就是一个好答案。啊哈,太好了!我认为得到一个好的答案是一个惊人的价格!!)太好了--这是我浏览的第二个直截了当的问题,称自己为1e4th:-)(请参阅关于标记的注释at)这种方法应该非常快,而且还会返回数值,因为排序是O(nlogn),累加,找到最大值和索引是O(n)@eznme,找到完成任务的替代方法很有趣!我觉得泰勒的方法很有趣。我很有兴趣将他的方法与您的方法进行比较,因为表似乎不是一个非常有效的函数。仅供参考,很难说你是在指出什么,还是想侮辱别人。对不起,这只是一句话。你的另一种方式也允许你说“谁是不同的”意思是“除了两个最常见的”。。。所以它更灵活。而且,鉴于向量只有8个元素,速度应该不是什么大问题。如果“谁不同”是指“那些只发生一次的”,那么这个答案可能是最好的。如果“谁是不同的”意味着“每一个价值,但最常见的一个”,那么看看我的。OP应该澄清这一点。是的,有趣的评论,我应该将我的问题表述为“每个值,但最常见的值”。谢谢澄清。好的,我从这个解决方案中学到了。现在有可能将此解决方案应用于整个数据帧或矩阵吗?也许我应该用示例数据集发布另一个问题…@Chargaff是的,一个新问题也会在主页列表中再次出现。
as.numeric(counts[-modal_value, "x"])
x <- c(378, 380, 380, 380, 380, 360, 187, 380)
y <- rle(sort(x)); y[[2]][y[[1]]==1]
x <- c(378, 380, 380, 380, 380, 360, 187, 380)
setdiff(unique(x), x[duplicated(x)])