如何获得R中每一行中出现次数第二多的值(和出现次数最少的值)

孤独的僧侣

对于数据框中的每一行,我想找到出现次数第二高的值以及出现次数最少的值。我怎样才能做到这一点?

df:

label v1 v2 v3 v4 v5 v6
5     3  3  3  6  6  8
5     7  1  1  1  7  0
5     3  5  6  6  6  5

我想考虑除“标签”之外的所有列

预期输出:

second largest occuring     least occuring
6                           8
7                           0
5                           3

编辑:我在答案被接受后更新了示例以减少混淆

亚当·桑普森

另一个 dplyr 解决方案更具可读性,可以处理 NA 和多次出现第二大的实例的错误。此解决方案还允许您使用 dplyr 语言选择多个列。

library(dplyr)

dat = read.table(text = 'label v1 v2 v3 v4 v5 v6
5     3  3  3  2  2  1
5     2  1  1  1  2  0
5     3  5  6  6  6  5', header = T)

second_largest <- function(x,na.rm = TRUE) {
  if(na.rm) { x <- na.omit(x) } # omit NA values
  second_largest <- x[dense_rank(x) == 2] # return all values where the rank is equal to 2nd largest
  second_largest <- max(second_largest) # keep one value out of all the second largest, or NA
  return(second_largest)
}

df <- dat %>%
  mutate(
    second_largest = select(., v1:v6) %>% apply(1, second_largest,na.rm = TRUE), # apply second_largest func to every row
    min = select(., v1:v6) %>% apply(1,min,na.rm = TRUE) # apply min to every row
  ) 

#   label v1 v2 v3 v4 v5 v6 second_largest min
# 1     5  3  3  3  2  2  1              2   1
# 2     5  2  1  1  1  2  0              1   0
# 3     5  3  5  6  6  6  5              5   3

有几点需要注意。

在 apply 语句中,1 表示该函数应该应用于行。

更新

如果您想要第二个最常用数字的值,您只需插入一个新函数即可。

second_most_frequent <- function(x, is_numeric = TRUE) {
  out <- x %>%
    table() %>% # Create a table of frequencies as characters
    as.data.frame(stringsAsFactors = FALSE) %>%
    arrange(desc(Freq)) %>% # Arrange with frequency descending
    .[,1] %>% # Select the first column
    .[2] # select the second most frequent (WARNING: Doesn't check for ties)
  if(is_numeric){ out <- as.numeric(out) }
  return(out)
}

df <- df %>%
  mutate(
    second_most_freq = select(., v1:v6) %>% apply(1,second_most_frequent,is_numeric = TRUE)
  )

#   label v1 v2 v3 v4 v5 v6 second_largest min second_most_freq
# 1     5  3  3  3  2  2  1              2   1                2
# 2     5  2  1  1  1  2  0              1   0                2
# 3     5  3  5  6  6  6  5              5   3                5

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算值在 R 中出现的次数(并将其附加在每一行中)

来自分类Dev

如何删除文件第二行中的值出现特定次数的行?

来自分类Dev

计算一行中出现的次数

来自分类Dev

如何根据出现次数最少的列值删除行

来自分类Dev

如何获得集合中出现次数最多的值?

来自分类Dev

获取numpy中出现次数最少的值的索引

来自分类Dev

查找数据帧中每一行的出现次数

来自分类Dev

计算oracle表中每一行的出现次数

来自分类Dev

计算每个值出现在一行数据帧 r 中的次数

来自分类Dev

如何仅显示出现次数第二高的值?

来自分类Dev

计算每个唯一值在R中出现的次数

来自分类Dev

计算数据框中每一行和特定列在列表中的出现次数

来自分类Dev

获取分别在每列中出现不同值的次数

来自分类Dev

计算每个标记在 DataFrame 的每一行中出现的次数

来自分类Dev

R:如何计算某个值在矢量中已经出现的次数(或该值左侧出现的次数)?

来自分类Dev

计算一个值在多维数组中出现的次数

来自分类Dev

计算一个值在表SQL中出现的次数

来自分类Dev

唯一值在 Excel 中出现的次数总和

来自分类Dev

将R中矩阵中出现次数最少的字符串转换为出现次数更高的字符串

来自分类Dev

求一个矩阵的每一行在另一个矩阵中出现的次数

来自分类Dev

如何找到在python词典中出现次数最多的值?

来自分类Dev

Scala Pairs:如何计算值中出现的次数(数字列表)

来自分类Dev

绘制值在ggplot中的列中出现的次数

来自分类Dev

如何仅选择表中出现次数最少的记录?

来自分类Dev

如何仅选择表中出现次数最少的记录?

来自分类Dev

如何按出现次数对每一行进行排序?

来自分类Dev

Perl-计算文件每一行中特定单词的出现次数

来自分类Dev

如何获得文件中每一行出现的数量?

来自分类Dev

如何获得文件中每一行出现的数量?

Related 相关文章

  1. 1

    计算值在 R 中出现的次数(并将其附加在每一行中)

  2. 2

    如何删除文件第二行中的值出现特定次数的行?

  3. 3

    计算一行中出现的次数

  4. 4

    如何根据出现次数最少的列值删除行

  5. 5

    如何获得集合中出现次数最多的值?

  6. 6

    获取numpy中出现次数最少的值的索引

  7. 7

    查找数据帧中每一行的出现次数

  8. 8

    计算oracle表中每一行的出现次数

  9. 9

    计算每个值出现在一行数据帧 r 中的次数

  10. 10

    如何仅显示出现次数第二高的值?

  11. 11

    计算每个唯一值在R中出现的次数

  12. 12

    计算数据框中每一行和特定列在列表中的出现次数

  13. 13

    获取分别在每列中出现不同值的次数

  14. 14

    计算每个标记在 DataFrame 的每一行中出现的次数

  15. 15

    R:如何计算某个值在矢量中已经出现的次数(或该值左侧出现的次数)?

  16. 16

    计算一个值在多维数组中出现的次数

  17. 17

    计算一个值在表SQL中出现的次数

  18. 18

    唯一值在 Excel 中出现的次数总和

  19. 19

    将R中矩阵中出现次数最少的字符串转换为出现次数更高的字符串

  20. 20

    求一个矩阵的每一行在另一个矩阵中出现的次数

  21. 21

    如何找到在python词典中出现次数最多的值?

  22. 22

    Scala Pairs:如何计算值中出现的次数(数字列表)

  23. 23

    绘制值在ggplot中的列中出现的次数

  24. 24

    如何仅选择表中出现次数最少的记录?

  25. 25

    如何仅选择表中出现次数最少的记录?

  26. 26

    如何按出现次数对每一行进行排序?

  27. 27

    Perl-计算文件每一行中特定单词的出现次数

  28. 28

    如何获得文件中每一行出现的数量?

  29. 29

    如何获得文件中每一行出现的数量?

热门标签

归档