r - 根据值的间隔删除行?
问题描述
df = read.table(sep="",
header=T,
text="Name Age Rate
Aira 23 90
Ben 32 98
Cat 27 95")
我想编写一个代码,删除 25 到 30 之间的所有年龄列观察结果。因此,结果将导致删除 27 岁的底行:
df = read.table(sep="",
header=T,
text="Name Age Rate
Aira 23 90
Ben 32 98")
我试过这样写,但我很不喜欢我使用两种逻辑:
df <- df[!(25<df$Age<30),]
解决方案
使用subset
> subset(df, Age<25 | Age>30)
Name Age Rate
1 Aira 23 90
2 Ben 32 98
使用您的原始尝试
> df[df$Age<25 | df$Age>30, ]
Name Age Rate
1 Aira 23 90
2 Ben 32 98
编辑:
如果要选择 25 到 30 之间的值
> subset(df, Age>=25 & Age<=30) # Option1
Name Age Rate
3 Cat 27 95
> df[df$Age>=25 & df$Age<=30,] # Option2
Name Age Rate
3 Cat 27 95
> df[!c(df$Age<25 | df$Age>30), ] # Option3
Name Age Rate
3 Cat 27 95
推荐阅读
- bash - 在 shell 中生成登录 cookie(使用 curl?)
- flutter - 我怎么能通过列表
通过引用其他类的类?飞镖/颤振 - c - 从 C 程序写入命名管道以在 bash 脚本中读取
- python - 如何在模型中保存字符串列表?
- oauth - SSO 和 OAuth 集成
- python - python 3.7在使用字典中的数字(值)时出错
- datagrip - 如何停止 UI 导航到服务视图中的最新结果?
- c - 为什么 konsole 不等待第二次“阅读”/scanf?
- java - 在 Android 中为不同平台版本提供单独的 XML 文件的目的是什么?
- php - 如何访问插件内条目的矩阵字段?