【发布时间】:2021-10-25 13:23:53
【问题描述】:
我正在努力完成以下任务。这是我正在使用的数据集的一个虚拟示例(dput 输出):
structure(list(SHOPID = c("11T", "2T1", "33A", "14B", "29O"), PPCODE = c(4412,
3567, 4412, 3567, 5123), PRICE = c(1.45, 1.21, 1.45, 1.21, 1.01
), TYPE = c("LAR", "SMA", "SMA", "SMA", "LAR"
)), row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"
))
任务是编写这样一个脚本,如果某些 ppcode 属于 SMA(小)类型,但不是 LAR(大)类型,则应在与该 ppcode 相关的数据相同的地方添加额外的行,但使用键入“LAR”。因此,在这个提供的示例中,应该在底部添加 SHOPID=NA, PPCODE=3567, PRICE= 1.21, TYPE=LAR 的行。这不仅适用于这种特殊情况,而且通常适用于更大的数据集。我更喜欢 dplyr 库并尝试使用它,但也欢迎使用其他解决方案。
【问题讨论】:
-
了解
complete和fill -
SHOPID == 14B(不是 NA!) 其中PPCODE==3567&PRICE== 1.21 -
@ChrisRuehlemann 这里是价格和 ppcode 的两倍。只有 shopid 是唯一键,不应将其复制到新行,因为相同的 ppcode 可以是不同的 shopid。这就是为什么新添加的类型为“LAR”的行的 shopid 应该为空的原因。