【问题标题】:I need to find the values in one column given the three minimum values of another column给定另一列的三个最小值,我需要找到一列中的值
【发布时间】:2020-10-12 20:06:41
【问题描述】:

我有一个数据集 data1,我需要找到一列 pph 中的最小值,并找出它们在另一列 state 中对应的值,即第 1 列

这就是我所拥有的

data1[which.min(data1$pph), 1]

这给了我第一列中的最小值和它对应的值,但我不知道如何找到三个最小的值以及它们对应的值。

【问题讨论】:

  • 改用which(data1$pph == min(data1$pph))

标签: r


【解决方案1】:

这可以使用 dplyr 库中的 slice_min() 轻松完成。

# making fake data
data1 <- data.frame("pph" = c(1:10), "state" = c(rep(c(1,2),5)))

# find min 3 pph but only show state column
data1 %>% slice_min(pph, n = 3) %>% select(state)

如果需要,您还可以将 dplyr 管道的输出分配给变量。

【讨论】:

  • 完美运行!谢谢你的知识
  • 没问题!祝你好运,编码愉快! :)
【解决方案2】:

我们可以使用filter

library(dplyr)
data1 %>%
    filter(pph == min(pph)) 

【讨论】:

  • 我不确定你是否能获得三个最小值。
【解决方案3】:

使用base可以试试

data1[order(data1$pph)[1:3],"state"]

使用data.table可以试试

library(data.table)
setDT(data1)
data1[order(pph)[1:3],"state"]#Here you actually call the three most minimum values 

或者类似

data1[order(pph),"state"][1:3] #Here is like you filter the three most minimum values

【讨论】:

    猜你喜欢
    • 2020-02-21
    • 2022-01-23
    • 2015-09-12
    • 2017-05-30
    • 1970-01-01
    • 2021-07-25
    • 2011-02-18
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多