R i和j相等的实例计数
我试图获得两列中的值相等的实例数。然而,我的方程式不起作用 有人能指出哪里错了吗R i和j相等的实例计数,r,count,multiple-columns,R,Count,Multiple Columns,我试图获得两列中的值相等的实例数。然而,我的方程式不起作用 有人能指出哪里错了吗 count<-0 for (i in 1:length(v1)){ for (j in 1:length(v2)){ if (i == j){ count <- count+ 1 } } } count这是因为您比较的是索引(i==j),而不是每个单元格的内容(v1[i]和v2[j])。你应该这样写: count<-0 for (i in 1:length
count<-0
for (i in 1:length(v1)){
for (j in 1:length(v2)){
if (i == j){
count <- count+ 1 }
}
}
count这是因为您比较的是索引(i==j),而不是每个单元格的内容(v1[i]和v2[j])。你应该这样写:
count<-0
for (i in 1:length(v1))
{
for (j in 1:length(v2))
{
if (v1[i] == v2[j])
{
count <- count+ 1
}
}
}
count我不太清楚你在问什么。如果您在一个数据帧中有两列,并且您想知道这些值有多少次是相同的,那么这是可行的
a<-1:10
b<-c(2,2,4,2,5,6,1,2,9,10)
df<-data.frame(a,b)
sum(df$a == df$b) #[1] 5
a一些示例数据:
set.seed(42)
v1 <- sample(0:1, 3, TRUE)
#[1] 1 1 0
v2 <- sample(0:1, 3, TRUE)
#[1] 1 1 1
请注意,此解决方案将比双for
循环快得多。但是,它需要更多的内存,这可能会成为大型向量的问题(因为它计算的矩阵随向量长度的平方增长)。目前来看,这太广泛了。什么是v1
?什么是v2
?期望的结果是什么?请将这些添加到您的帖子中。为什么更简单的方法不是:min(长度(v1),长度(v2))
。此外,代码适用于长度不等的两个向量。sum(i==j)
或cumsum(i==j)
实际上是我的猜测。Alex,我将取sum(v1%in%v2)
200。列是什么无关。关键是我想对它们相等的实例求和。sum.mether不需要创建数据帧。总和(a==b)就足够了。
sum(outer(v1, v2, "=="))
#[1] 6