gpt4 book ai didi

r - RTF 报告中的跳过值

转载 作者:行者123 更新时间:2023-12-04 18:37:01 28 4
gpt4 key购买 nike

我有一个数据框 df 用于 RTF 格式的报告,如下所示:

df <-

ATRSLBL POPUL CENTRE BAGE BAGEC1 SEX
Red PPS 37201 75 3 1
Red PPS 37201 71 2 2
Red PPS 37201 73 2 1
Red PPS 38201 66 2 2
Blue PPS 37201 78 3 2
Blue PPS 38201 71 2 2
Blue PPS 38201 71 2 1
Blue PPS 38201 64 1 2

我想将其打印为:
ATRSLBL POPUL   CENTRE  BAGE    BAGEC1  SEX
Red PPS 37201 75 3 1
PPS 71 2 2
PPS 73 2 1
PPS 38201 66 2 2
Blue PPS 37201 78 3 2
PPS 38201 71 2 2
PPS 71 2 1
PPS 64 1 2

任何人都可以请帮助我。

最佳答案

我们可以用 data.table 做到这一点.我们将'data.frame'转换为'data.table'(setDT(df)),我们得到duplicated的逻辑索引'ATRSLBL' 并将其分配 ( := ) 给 '' .我们创建分组变量( cumsum(ATRSLBL !='') ),并获得行索引 duplicated 'CENTRE',使用该索引将 'CENTRE' 分配给 ''将 'CENTRE' 列转换为 'character' 后

library(data.table)
setDT(df)[duplicated(ATRSLBL), ATRSLBL := '']
i1 <- df[, .I[duplicated(CENTRE)] , cumsum(ATRSLBL!='')]$V1
df[, CENTRE:= as.character(CENTRE)][i1, CENTRE:= '']
df
# ATRSLBL POPUL CENTRE BAGE BAGEC1 SEX
#1: Red PPS 37201 75 3 1
#2: PPS 71 2 2
#3: PPS 73 2 1
#4: PPS 38201 66 2 2
#5: Blue PPS 37201 78 3 2
#6: PPS 38201 71 2 2
#7: PPS 71 2 1
#8: PPS 64 1 2

注意:这里我假设“ATRSLBL”列为 character类(class)。

关于r - RTF 报告中的跳过值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33121574/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com