首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subsetting,dat[13:24,2]不返回我在本例中所期望的结果。

Subsetting,dat[13:24,2]不返回我在本例中所期望的结果。
EN

Stack Overflow用户
提问于 2015-01-27 01:21:54
回答 4查看 79关注 0票数 3

我正试着在R.

我有一个数据集,它有两个列,名为DietBodyweight。行1:12是控件的观测结果,我想得到控件组的Bodyweight列的平均值。

所以我用这个:mean(dat[1:12,2])

然后,我想知道有多少非控制观察(第13:24行)比控制观察的平均值(第1:12行)少。

所以我用了这个:dat[dat[13:24,2] < mean(dat[1:12,2]), ]

这给了我这个

代码语言:javascript
复制
   Diet Bodyweight
3  chow      24.04
10 chow      20.10
12 chow      26.25
15   hf      22.80
22   hf      21.90
24   hf      20.73

但我希望它返回这样的内容,其中不包括第1:12行:

代码语言:javascript
复制
   Diet Bodyweight
15   hf      22.80
22   hf      21.90
24   hf      20.73

我怎样才能做到这一点?

*编辑: dput()结果:

代码语言:javascript
复制
> dput(dat)
structure(list(Diet = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L), .Label = c("chow", "hf"), class = "factor"), Bodyweight = c(21.51, 
28.14, 24.04, 23.45, 23.68, 19.79, 28.4, 20.98, 22.51, 20.1, 
26.91, 26.25, 25.71, 26.37, 22.8, 25.34, 24.97, 28.14, 29.58, 
30.92, 34.02, 21.9, 31.53, 20.73)), .Names = c("Diet", "Bodyweight"
), class = "data.frame", row.names = c(NA, -24L))
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-27 01:40:12

分两步做。首先获取目标行,然后应用逻辑选择:

代码语言:javascript
复制
> dat[ 13:24, ][dat[13:24,2] < mean(dat[1:12,2]), ]
   Diet Bodyweight
15   hf      22.80
22   hf      21.90
24   hf      20.73

你可以把呼叫串在一起。对"[“的第二个调用只是选择具有12项逻辑向量的行,但是由于它是从同一组值创建的,所以它是”同步的“。

票数 4
EN

Stack Overflow用户

发布于 2015-01-27 01:44:12

如果您不知道行号,也可以使用名称和值。

代码语言:javascript
复制
df[with(df, Diet == "hf" & Bodyweight < mean(Bodyweight[Diet == "chow"])), ]
#    Diet Bodyweight
# 15   hf      22.80
# 22   hf      21.90
# 24   hf      20.73
票数 4
EN

Stack Overflow用户

发布于 2015-01-27 01:37:22

如果您不知道行号,也不知道其他测试变量的名称(在这种情况下,您有比“hf”更多的测试变量),但是知道"chow“饮食是您的控制,您可以这样做:

代码语言:javascript
复制
library(dplyr)
df %>% filter(Diet != "chow", Bodyweight < mean(Bodyweight[Diet == "chow"]))

返回:

代码语言:javascript
复制
#  Diet Bodyweight
#1   hf      22.80
#2   hf      21.90
#3   hf      20.73
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28161705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档