一列的值基于R中另一列的值

一列的值基于R中另一列的值,r,R,我必须在一列中找到最小值,并根据该值在另一列中找到对应的值 我的数据集是K,我的列名是X,Y: > K X Y 1 2 3 2 4 5 3 6 7 4 8 9 5 10 11 这些列具有这些值,我使用 apply(K[c(2)],2,min) # this gives me 3. 现在我必须把它和我发现很困难的X列联系起来 我对R完全陌生,我还在学习。另外,除了,library(readr)真正取决于“relate”的含义之外,我不知道还有其他库。假设要查找X小

我必须在一列中找到最小值,并根据该值在另一列中找到对应的值

我的数据集是K,我的列名是X,Y:

> K
   X  Y
1  2  3
2  4  5
3  6  7
4  8  9
5 10 11
这些列具有这些值,我使用

apply(K[c(2)],2,min) # this gives me 3.
现在我必须把它和我发现很困难的X列联系起来


我对R完全陌生,我还在学习。另外,除了,
library(readr)

真正取决于“relate”的含义之外,我不知道还有其他库。假设要查找X小于Y行最小值的所有行:

 K[K$X<min(K$Y),]

该命令是一个子集命令,它要求给出X小于整个Y列最小值的任何行的所有列。

假设您希望在
X
中获取与
Y
最小值位于同一行的条目,您可以尝试:

# create example data.frame:
K <- data.frame(X = seq(2, 10, 2), Y = seq(3, 11, 2))

# find index of minimum entry in column Y:
idx <- match(min(K$Y), K$Y) # gives you the first entry of the minimum
idx2 <- which(min(K$Y) %in% K$Y) # gives you all indices of the minimum

# output the corresponding element (or elements) in column X:
K$X[idx]
K$X[idx2]
#创建示例data.frame:

K无需应用
apply
。如果您知道只有一个Y值是最低的,或者您需要最低Y值的第一条记录,您可以使用
which.min
。否则,请使用
min
,因为这会更加可靠。在您的示例中,这并不重要,但是在完整的data.frame上测试这两种方法,看看是否有差异

K[K$Y == min(K$Y), ]
  X Y
1 2 3

K[which.min(K$Y), ]
  X Y
1 2 3

我也遇到了同样的问题,有一种“更整洁”的方法可以通过变异和筛选实现这一点:

    K %>% mutate(minY=min(Y)) %>% filter(Y=minY).

如果您需要每个组的最小记录,也可以将其与group_by一起使用

你的预期产出是多少?您想用
X
做什么?我希望代码将X值返回为2,Y值返回为3.ohk。谢谢。顺便说一句,逗号前写表示什么。这是一次连续的手术,对吗?那么它是否返回与Y的最小值对应的整行?如果我只想要另一个特定的逗号呢?请帮助我理解逗号的概念。K[K$Y==,min(K$Y)]我这样写,它抛出了一个错误,说“出乎意料”,“我会感谢你的”。@PrashantKumar,
K[,]
,逗号之前的所有内容实际上都是行操作,逗号之后的所有内容都是用于选择列。因此K[K$Y==3,]将返回K$Y==3的所有行和列。在代码中,逗号应该在min(…)之后,与我的第一行代码完全相同。
    K %>% mutate(minY=min(Y)) %>% filter(Y=minY).