我对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')
谢谢!
答案 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']