簡體   English   中英

根據列值創建具有數字序列的行

[英]Create a row with sequence of nymbers based on column value

我有一個數據集,其中行序列與一個客戶端相關。 每個客戶端的最后一行是“狀態正常”。 因此,我的數據由塊組成,每個塊都與一個客戶相關。 我需要創建一個列來顯示所有塊行中的客戶端數量。 例如我的數據是:

x = data.frame(A = c('name1', 'address1', 'status1', 'name2', 'address2', 'status2'), B= c('John', 'Texas', 'OK', 'William', 'Florida', 'OK')) x

我預期的 output 是:

x = data.frame(A = c('name1', 'address1', 'status1', 'name2', 'address2', 'status2'), B = c('John', 'Texas', 'OK', 'William', 'Florida', 'OK'), C = c('1', '1', '1', '2', '2', '2')) x

謝謝。

您可以使用cumsum

library(dplyr)
x %>% mutate(C = lag(cumsum(B == 'OK'), default = 0) + 1)

#         A       B C
#1    name1    John 1
#2 address1   Texas 1
#3  status1      OK 1
#4    name2 William 2
#5 address2 Florida 2
#6  status2      OK 2

您可以簡單地提取客戶端 ID:

x$C <- stringr::str_extract(x$A, "[0-9]+")

另外的選擇:

x$C <- as.numeric(gsub('[^0-9]', "", x$A))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM