R 对数据框中具有特定值的列进行计数

R 对数据框中具有特定值的列进行计数,r,count,R,Count,我有以下名为temp的可复制数据集: temp=as.data.frame(cbind(c("x3","x2","x1",NA),c("x5","x2","x1",NA),c("x2","x3","x1",NA),c("x3","x2","x1","x4"),c("x1","x2",NA,NA))) 我想计算列cx3、x2、x1及其所有可能的变量(如cx1、x2、x3)在temp中的次数。因此,它应该给出输出[2]。 很遗憾,%cx1、x2、x3中的sumsaplytemp、functionx

我有以下名为temp的可复制数据集:

temp=as.data.frame(cbind(c("x3","x2","x1",NA),c("x5","x2","x1",NA),c("x2","x3","x1",NA),c("x3","x2","x1","x4"),c("x1","x2",NA,NA)))
我想计算列cx3、x2、x1及其所有可能的变量(如cx1、x2、x3)在temp中的次数。因此,它应该给出输出[2]。 很遗憾,%cx1、x2、x3中的sumsaplytemp、functionx allx[!is.nax]%没有给出正确的解决方案。 如何计算具有特定值的列数及其所有变化?

您的reprex:


温度这应该有效。CHAS查看唯一值是否相同:

  data <- as.data.frame(cbind(c("x3","x2","x1",NA),c("x5","x2","x1",NA),c("x2","x3","x1",NA),c("x3","x2","x1","x4"),c("x1","x2",NA,NA)))
  vector_pattern <- c("x3","x2","x1")

  nvect <- length(vector_pattern)
  cont <- 0
  for(i in 1:ncol(data)){
    aa <- unique(data[,i])
    aa <- aa[!is.na(aa)]


    if(all(!is.na(match(aa,vector_pattern))) & length(aa) == nvect){
      cont <- cont + 1
    }
  }
  print(cont)

所有列的长度均为4。。所以没有一个向量等于长度为3的向量…为什么是2?我可以数3在本例中,它应该只数cx2、x3、x1、NA和cx3、x2、x1、NA。因此,cx3、x2、x1、x4和cx1、x2、NA、NA不应视为变体。x3、x2、x1的变化仅计数。换句话说:x3、x2、x1的变化,其中列等于长度3(不包括NA)。您是否在寻找唯一的计数?因此cx3、x2、x1、x4不被计数,因为其中包含x4?所以应该总是有3个值和1个NA?cx1,x1,x2,x3应该计数吗?该函数将计算它。如果我们说temp2谢谢@eac2222!我可不想把车开错方向@Luuk van Gasteren检查这是否对您有效。对我来说,cx1、x1、x2、x3永远不会发生,因为在我的研究中,x是回归模型的变量。所以,@Benjamin的代码是有效的。@LuukvanGasteren谢谢你,请随意标记我的答案并接受左边的复选标记。祝你回归和研究好运!