啊啊啊啊啊吖

2018-10-17   阅读量: 1800

数据分析师 R语言 线性代数

在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)
添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 2 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子