2018-10-17
閱讀量:
2528
在R里如何找到某行第一個大于某值的數(shù)的位置
如數(shù)據(jù)集:
c1 c2 c3 c4 c5
1? ?0??3? ?6??9
2? ?1??2? ?10??12
3? ?0??4? ?11??13
如何返回每一行中c3-c5中第一個大于4的數(shù)值的位置,到一個新的變量中,如c6, 其對應(yīng)的取值應(yīng)該是4,4,3
提供一個通用的方法:
library(tidyverse)
data %>%??# 假設(shè)數(shù)據(jù)是data.frame形式,變量名'data'
? ? # 針對每行處理的問題可以轉(zhuǎn)化為根據(jù)行數(shù)來分組
? ? group_by(row_number()) %>%
? ? # 將C1到C5的維度折疊至一個統(tǒng)一的維度'col_seq'
? ? gather(col_seq, value, 1:5) %>%
? ? # 根據(jù)現(xiàn)在組內(nèi)的順序增加‘標記’
? ? mutate(seq = row_number()) %>%
? ? # 去除原來的C1,C2列的數(shù)據(jù)
? ? filter(seq >= 3) %>%
? ? # 去除數(shù)值小于4的數(shù)據(jù)
? ? filter(value >=4) %>%
? ? # 每一組(原每一行)符合條件的第一個數(shù)據(jù)保留
? ? slice(1) %>%
? ? # 將對應(yīng)的順序標記提取出來。
? ? pull(seq)






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論