r - 特定数据集子集
问题描述
我有一个数据集:
x y
j 5
k 2
b 9
b 1
k 1
g 8
h 2
k 4
我想在 x 列及其上方的行中提取值为 k 的行,因此所需的输出是:
x y
j 5
k 2
b 1
k 1
h 2
k 4
我怎么能那样做?我知道如何在 x 列中提取值为 k 的行:
df[df$x=="k",]
,但是如何在它上面提取一行呢?
解决方案
which
您可以使用+尝试下面的代码sort
indk <- which(df$x=="k")
df[sort(c(indk-1,indk)),]
这使
x y
1 j 5
2 k 2
4 b 1
5 k 1
7 h 2
8 k 4
数据
> dput(df)
structure(list(x = c("j", "k", "b", "b", "k", "g", "h", "k"),
y = c(5L, 2L, 9L, 1L, 1L, 8L, 2L, 4L)), class = "data.frame", row.names = c(NA,
-8L))
推荐阅读
- node.js - 节点红色阻止 Azure 事件中心访问
- linux - sed:打印带有时间和 ls -altr 信息的目录树
- gradle - 在 Gradle 中从外部文件声明依赖项
- c - 使用 uint32_t 存储四个单独的 uint8_t 值
- java - A*算法返回失败伪代码
- c++ - C++ 宏从 .cpp 初始化在 .h 中声明的变量
- javascript - 递归下降解析器应该在重复字母终端上出错
- c# - 根据 API 的时间段获取用户的 Zendesk 登录信息
- python - python - 如何使用pandas(python)将每n行的行转换为列?
- aws-lambda - API 名称始终是 SAM 中的堆栈名称