1

我对 R 完全陌生......我真的很感谢你的帮助!!!这是我的问题。我有一个数据集,它是关于不同饮食喂养的鸡的体重增加。我为所有数据创建了一个 data.frame。我试图确定体重最轻的鸡的 ID。所以我首先对数据进行排序: 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')

谢谢!

4

2 回答 2

1

无需在这里排序,您可以使用which.min

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

PS:要创建变量差异,您可以这样做:

all <- data.frame('ID'=X1,diet=X2,X3=X3,X4=X4) 
all <- transform(all,diff=X4-X3)
于 2013-10-16T02:07:26.753 回答
0

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

这两种方法中的任何一种都应该可以提取信息以获得最少的体重增加。

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

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

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

all[order(all$X5, decreasing = TRUE), ][1, 'diet']
于 2013-10-16T02:20:07.907 回答