我有一手扑克牌,我需要检查三种牌。有没有办法查看向量中的 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,返回 TRUE
或 FALSE
表的每个部分。 sum
-ing TRUE/FALSE
值等同于求和 1/0
值,所以如果你检查你有一个 2
对于其他的卡片,你可以确定它们是不同的。
关于r - 在 R 中,如何查看长度为 5 的向量中字符向量的三个元素是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855329/