Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R计数值在每行中出现的次数_R_Mode - Fatal编程技术网

R计数值在每行中出现的次数

R计数值在每行中出现的次数,r,mode,R,Mode,我需要找出获得的每个模式(一行模式,而不是一列模式)的值,从我的数据中它在其行中出现了多少次 这是我的数据 > head(TiposMotivA) Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 1 5 4 4 4 6 6 7 6 4 6 6 6 4 4 4 4 6 7 4 4 6 2 5 4 4 5 5 5

我需要找出获得的每个模式(一行模式,而不是一列模式)的值,从我的数据中它在其行中出现了多少次

这是我的数据

> head(TiposMotivA)
  Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21
1  5  4  4  4  6  6  7  6  4   6   6   6   4   4   4   4   6   7   4   4   6
2  5  4  4  5  5  5  5  5  5   5   7   5   4   3   1   6   6   5   6   7   7
3  4  5  4  4  5  4  5  4  5   4   5   4   5   4   5   4   5   4   5   4   5
4  5  5  7  7  4  6  6  6  7   7   6   7   7   6   6   7   4   7   6   6   7
5  6  1  7  6  7  7  7  7  7   7   6   7   2   2   3   6   3   7   7   7   7
6  4  4  3  3  4  5  4  3  4   7   6   6   4   4   6   4   5   7   6   6   7
来自此数据集的Dput

dput(head(TiposMotivA))
    structure(list(Q1 = c(5L, 5L, 4L, 5L, 6L, 4L), Q2 = c(4L, 4L, 
    5L, 5L, 1L, 4L), Q3 = c(4L, 4L, 4L, 7L, 7L, 3L), Q4 = c(4L, 5L, 
    4L, 7L, 6L, 3L), Q5 = c(6L, 5L, 5L, 4L, 7L, 4L), Q6 = c(6L, 5L, 
    4L, 6L, 7L, 5L), Q7 = c(7L, 5L, 5L, 6L, 7L, 4L), Q8 = c(6L, 5L, 
    4L, 6L, 7L, 3L), Q9 = c(4L, 5L, 5L, 7L, 7L, 4L), Q10 = c(6L, 
    5L, 4L, 7L, 7L, 7L), Q11 = c(6L, 7L, 5L, 6L, 6L, 6L), Q12 = c(6L, 
    5L, 4L, 7L, 7L, 6L), Q13 = c(4L, 4L, 5L, 7L, 2L, 4L), Q14 = c(4L, 
    3L, 4L, 6L, 2L, 4L), Q15 = c(4L, 1L, 5L, 6L, 3L, 6L), Q16 = c(4L, 
    6L, 4L, 7L, 6L, 4L), Q17 = c(6L, 6L, 5L, 4L, 3L, 5L), Q18 = c(7L, 
    5L, 4L, 7L, 7L, 7L), Q19 = c(4L, 6L, 5L, 6L, 7L, 6L), Q20 = c(4L, 
    7L, 4L, 6L, 7L, 6L), Q21 = c(6L, 7L, 5L, 7L, 7L, 7L)), .Names = c("Q1", 
    "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11", 
    "Q12", "Q13", "Q14", "Q15", "Q16", "Q17", "Q18", "Q19", "Q20", 
    "Q21"), row.names = c(NA, 6L), class = "data.frame")
这些是每行的模式

    [1] "4" "5" "4"   "7"   "7"   "4"   "7"   "6"   "7"   "7"   "7"   "7"   "7" 
    [14] "5" "7" "6"   "7"   "6"   "7"   "7"   "7"   "7"   "7"   "7"   "7"   "7"
    [27] "7" "7" "7"   "5"   "2"   "7"   "7"   "7"   "7"   "7"   "6"   "6"   "7"
    [40] "4" "3"   "4"   "7"   "5" "6"   "7"   "7"   "6"   "7"   "6"   "7"   "7"
    [53] "7"   "6"   "7"   "7"   "5" "7"   "7"   "7"   "7"   "7" 


> 
这个的Dput

dput(ModaLinhaA) (四,五,四,七,七,四,七,六,七,七,七,, "7", "5", "7", "6", "7", "6", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "5", "2", "7", "7", "7", "7", "7", "6", "6", "7", "4", "3", "4", "7", "5", "6", "7", "7", "6", "7", "6", "7", “7”、“7”、“6”、“7”、“7”、“5”、“7”、“7”、“7”、“7”、“7”、“7”)

现在我需要计算每个模式在每行中出现的次数。 答案应该是这样的:

Row    Mode    Qt
  1       4    10
  2       5    10
  3       4    11

您可以编写一个简单的函数来计算向量中最常见的数字,然后使用
apply()
将其应用于每一行

注意:我在下面的代码中使用了@Ken_William's

Mode <- function(x) { # @Ken_Williams's formula for mode
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}

TiposMotivA$Qt <- apply(TiposMotivA, 1, function(x) sum(x == Mode(x)))

Mode假设TiposMotivA和ModaLinhaA具有相同的长度(我猜在完整数据集中就是这样):


@RockScience我想你可以把它简化为
TiposMotivA==ModaLinhaA[row(TiposMotivA)]
TiposMotivA==rep(ModaLinhaA,ncol(TiposMotivA))
@akrun事实上,我已经为你的建议调整了答案(尽管这让不知道矩阵是如何在R中构建的人更加困惑)@RockScience是的,我同意你的看法。
data.frame(Row = 1:nrow(TiposMotivA),
           Mode = ModaLinhaA,
           Qt = rowSums(TiposMotivA == rep(ModaLinhaA,ncol(TiposMotivA))))