在R中,如何识别值属于哪一行

时间:2013-10-16 02:03:01

标签: r

我对R来说是新手......我真的很感谢你的帮助!这是我的问题。我有一个数据集,这是关于通过不同的饮食喂养的鸡的体重增加。我为所有数据创建了一个data.frame。我试图找出体重最轻的鸡的身份证。所以我先对数据进行排序: sort(all$'weight.diff')但我无法弄清楚如何从鸡肉中获取最重量的所有信息。而且我也想知道如何确定最重的鸡的饮食。

以下是我拥有的数据的示例

X1 <- c(1,2,3,4,5,6,7,8,9,10,11,12) 
X2 <- c('A','B','B','D','D','A','A','A','B','C','C','A') 
X3 <- c(126,114,128,120,68,106,112,163,109,158,117,83) 
X4 <- c(269,212,259,231,76,220,288,318,250,361,197,169) 
all <- data.frame('ID'=X1,diet=X2,'10'=X3,'20'=X4) 
all X5 <- X4-X3 
all <- data.frame(all,'diff'=X5) 
all sort(all$'diff')

谢谢!

2 个答案:

答案 0 :(得分:1)

无需在此处排序,您可以使用which.min

all[which.min(all$diff),]
  ID diet X3 X4 diff
5  5    D 68 76    8

PS:要创建变量diff,你可以这样做:

all <- data.frame('ID'=X1,diet=X2,X3=X3,X4=X4) 
all <- transform(all,diff=X4-X3)

答案 1 :(得分:0)

您的代码中存在一些错误,我认为您的意思是所有$ X5。之后你不需要任何东西。

其中任何两个都应该能够获得最少重量的信息。

all[which(all$X5 == min(all$X5)), ]

all[order(all$X5), ][1, ]

为了从获得的最大权重中获取信息,只需添加decrease = TRUE位,然后将第一行仅包含您感兴趣的列。

all[order(all$X5, decreasing = TRUE), ][1, 'diet']