如何用R语言逻辑运算符筛选ChickWeight中第10天或20天的观测值
解决ChickWeight数据集筛选问题
你的代码报错是因为用错了函数:slice()是按行的位置序号来选行的,比如slice(10)是选第10行,而你写的10|20会被R当成逻辑运算(非零值都视为TRUE,结果是TRUE,但slice不接受这种逻辑值作为参数),这根本不是你要的按Time变量值筛选的逻辑。
要实现只保留第10天和第20天的观测,应该用filter()函数配合逻辑运算符|(或),针对Time变量的值进行筛选:
首先确保加载了dplyr包:
library(dplyr)
然后执行筛选:
# 仅保留Time为10或20的观测结果 filtered_data <- ChickWeight %>% filter(Time == 10 | Time == 20)
简单解释下逻辑:
Time == 10匹配所有第10天的观测|表示“或”,满足任意一个条件就保留- 这样就能精准留下你需要的两天数据
如果是需要用&(与)的场景,比如筛选Time大于5且小于15的观测,写法是filter(Time > 5 & Time < 15),但你的需求用|更合适。
内容的提问来源于stack exchange,提问作者khali-blinks
相关产品推荐
相关产品推荐

