r - 在 R 中,如何查看长度为 5 的向量中字符向量的三个元素是否相同

标签 r vector element poker

我有一手扑克牌,我需要检查三种牌。有没有办法查看向量中的 3 个元素是否相同但其他 2 个元素不同?

例如:

hand <- c("Q","Q","6","5","Q")

应该为三种类型返回 TRUE

hand2 <- c("Q","Q","6","6","Q")

...虽然会是葫芦,但不应该被确定为一种三。

最佳答案

使用 table 和一些逻辑检查应该可以帮助您:

tab <- table(hand)
#hand
#5 6 Q 
#1 1 3
any(tab==3) & (sum(tab==1)==2)
#[1] TRUE

tab <- table(hand2)
#hand2
#6 Q 
#2 3 
any(tab==3) & (sum(tab==1)==2)
#[1] FALSE

这是有效的,因为 any 将查看 tab 文件,检查是否有任何卡值重复 3 次。函数的 tab==1 部分检查 tab 文件中的任何值是否等于 1,返回 TRUEFALSE 表的每个部分。 sum-ing TRUE/FALSE 值等同于求和 1/0 值,所以如果你检查你有一个 2对于其他的卡片,你可以确定它们是不同的。

关于r - 在 R 中,如何查看长度为 5 的向量中字符向量的三个元素是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855329/

相关文章:

r - 如何使用扫帚在整洁的输出中包含多个模型的置信区间?

matlab - 根据元胞数组中的内容查找列索引

html - react : Create a new html element on click

silverlight - 使用媒体元素在 mp3 中音量较低

c++ - 如何将点添加到结构类型的 vector

javascript - 无法更改数组中元素的值

R taskscheduleR不执行脚本

r - 如何在 Rmarkdown 中使用拼写检查?

r - 动画排序条形图,条形相互超越

vector - 在 Chipmunk 中对物体施加正交力,使其绕其中心旋转