2018-10-17
阅读量:
2208
在R里如何找到某行第一个大于某值的数的位置
如数据集:
c1 c2 c3 c4 c5
1 0 3 6 9
2 1 2 10 12
3 0 4 11 13
如何返回每一行中c3-c5中第一个大于4的数值的位置,到一个新的变量中,如c6, 其对应的取值应该是4,4,3
提供一个通用的方法:
library(tidyverse)
data %>% # 假设数据是data.frame形式,变量名'data'
# 针对每行处理的问题可以转化为根据行数来分组
group_by(row_number()) %>%
# 将C1到C5的维度折叠至一个统一的维度'col_seq'
gather(col_seq, value, 1:5) %>%
# 根据现在组内的顺序增加‘标记’
mutate(seq = row_number()) %>%
# 去除原来的C1,C2列的数据
filter(seq >= 3) %>%
# 去除数值小于4的数据
filter(value >=4) %>%
# 每一组(原每一行)符合条件的第一个数据保留
slice(1) %>%
# 将对应的顺序标记提取出来。
pull(seq)
0.0000
0
2
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论