如何找到最小数量的几个变量并返回列名

塞浦路斯人

我有一些这样的数据

       A    B    C    D
[1,]  23   23   12   34
[2,]  12   13   11   9 
[3,]  70   80   67   76
[4,]  43   23   25   40

我想生成两个新变量。

  1. 每行最小数量

  2. 最小值的列名

即结果应该是这样的:

      A     B    C     D   min   minCol
1    23    23   12    34    12        C
2    12    13   11     9     9        D
3    70    80   67    76    67        C
4    43    23   25    40    23        B

我尝试了以下脚本,但确实得到了“ min”变量,但是,当我尝试生成“ minCol”时,某些值被放为“ min”,而不是A,B,C或D 。

data <- transform(data, min=apply(data[,c(1:4)],1, min,na.rm = TRUE))

运行此命令后,得到以下数据框,这很好。

      A     B    C     D   min   
1    23    23   12    34    12       
2    12    13   11     9     9        
3    70    80   67    76    67        
4    43    23   25    40    23        

然后我运行以下脚本

data <- data.frame(data, minCol= apply(data, 1, function(row)
        {colnames(data)[[which.min(row)]]}))

并得到了这样的东西

      A     B    C     D   min   minCol
1    23    23   12    34    12        C
2    12    13   11     9     9        D
3    70    80   67    76    67        C
4    43    23   25    40    23        min

有人可以帮忙吗?

大卫·阿伦堡

一种简单的方法是(假设您的数据称为df

df[c("min", "minCol")] <- t(apply(df, 1, function(x) c(min(x), names(x[which.min(x)]))))
df
#    A  B  C  D min minCol
# 1 23 23 12 34  12      C
# 2 12 13 11  9   9      D
# 3 70 80 67 76  67      C
# 4 43 23 25 40  23      B

另一种方法(由@akrun提供)将是一个组合pmindo.call以及max.col

val <- do.call(pmin, c(df, na.rm = TRUE)) 
transform(df, min=val, minCol = names(df)[max.col(df == val, 'first')])

数据

df <- structure(list(A = c(23L, 12L, 70L, 43L), B = c(23L, 13L, 80L, 
      23L), C = c(12L, 11L, 67L, 25L), D = c(34L, 9L, 76L, 40L)), .Names = c("A", 
      "B", "C", "D"), class = "data.frame", row.names = c("1", "2", 
      "3", "4"))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++中找到最小数+ ve数?

来自分类Dev

TEdit:自动完成并限制最小数量

来自分类Dev

如何计算最大字符串的最小数量?

来自分类Dev

如何在多维数组中找到k个最小数字的索引?

来自分类Dev

如何在产品列表页面中显示“购物车中允许的最小数量”

来自分类Dev

PostgreSQL获得最小数量(*)?

来自分类Dev

SVG的最小数量是多少?

来自分类Dev

删除最小数量的重叠圆?

来自分类Dev

如何找到最小数量的开关以升序对给定排列(例如1-10)进行排序

来自分类Dev

如何在字符串java中打印最大和最小数量的ASCII值

来自分类Dev

Clojure:支持meta的最小数量实现?

来自分类Dev

如何计算mysql上A和B的最小数量?

来自分类Dev

如何在多维数组中找到k个最小数字的索引?

来自分类Dev

SQL:如何获取最小数量?

来自分类Dev

如何找到最小数量的几个变量并返回列名

来自分类Dev

PostgreSQL获得最小数量(*)?

来自分类Dev

如何使给定的无向图成为双向连接,并增加最小数量的边?

来自分类Dev

找到平均值。int数组的最大,最小数量和模式

来自分类Dev

在整数中找到最小数

来自分类Dev

如何在不排序的情况下找到数组中的最小数字?

来自分类Dev

如果条件-opencart中的最小数量未定义变量错误

来自分类Dev

Optaplanner:如何处理连续的最小数量

来自分类Dev

如何为每个唯一区域创建宏变量并为各个宏变量分配最小数量

来自分类Dev

如何在for循环中找到最小数量?

来自分类Dev

查找最小数量并打印的功能

来自分类Dev

如何在C中找到数字中的最小数字及其在向量中的位置?

来自分类Dev

如何找到等于给定值的对应元素的最小数字总和?

来自分类Dev

如何在PSPP中找到几个日期的最小值

来自分类Dev

使用列表理解找到最小数

Related 相关文章

  1. 1

    在C ++中找到最小数+ ve数?

  2. 2

    TEdit:自动完成并限制最小数量

  3. 3

    如何计算最大字符串的最小数量?

  4. 4

    如何在多维数组中找到k个最小数字的索引?

  5. 5

    如何在产品列表页面中显示“购物车中允许的最小数量”

  6. 6

    PostgreSQL获得最小数量(*)?

  7. 7

    SVG的最小数量是多少?

  8. 8

    删除最小数量的重叠圆?

  9. 9

    如何找到最小数量的开关以升序对给定排列(例如1-10)进行排序

  10. 10

    如何在字符串java中打印最大和最小数量的ASCII值

  11. 11

    Clojure:支持meta的最小数量实现?

  12. 12

    如何计算mysql上A和B的最小数量?

  13. 13

    如何在多维数组中找到k个最小数字的索引?

  14. 14

    SQL:如何获取最小数量?

  15. 15

    如何找到最小数量的几个变量并返回列名

  16. 16

    PostgreSQL获得最小数量(*)?

  17. 17

    如何使给定的无向图成为双向连接,并增加最小数量的边?

  18. 18

    找到平均值。int数组的最大,最小数量和模式

  19. 19

    在整数中找到最小数

  20. 20

    如何在不排序的情况下找到数组中的最小数字?

  21. 21

    如果条件-opencart中的最小数量未定义变量错误

  22. 22

    Optaplanner:如何处理连续的最小数量

  23. 23

    如何为每个唯一区域创建宏变量并为各个宏变量分配最小数量

  24. 24

    如何在for循环中找到最小数量?

  25. 25

    查找最小数量并打印的功能

  26. 26

    如何在C中找到数字中的最小数字及其在向量中的位置?

  27. 27

    如何找到等于给定值的对应元素的最小数字总和?

  28. 28

    如何在PSPP中找到几个日期的最小值

  29. 29

    使用列表理解找到最小数

热门标签

归档