【发布时间】:2020-09-09 03:28:37
【问题描述】:
首先,一些数据:
library(data.table)
# 1. Input table
df_input <- data.table(
x = c("x1", "x1", "x1", "x2", "x2"),
y = c("y1", "y1", "y2", "y1", "y1"),
z = c(1:5))
在每一列中,我只想保留每次连续值运行中的第一个值。例如。查看y 列,它有三个不同的运行:(1) 两个y1,(2) 一个y2,和(3) 第二个运行y1。在每次这样的运行中,重复值应替换为""。
# x y z
# 1: x1 y1 1 # 1st value in run of y1: keep
# 2: x1 y1 2 # 2nd value in run: replace
# 3: x1 y2 3 # 1st value in run: keep
# 4: x2 y1 4 # 1st value in 2nd run of y1: keep
# 5: x2 y1 5 # 2nd value: replace
因此,所需的输出表:
df_output <- data.table(
x = c("x1", "", "", "x2", ""),
y = c("y1", "", "y2", "y1", ""),
z = c(1:5))
# x y z
# 1: x1 y1 1
# 2: 2
# 3: y2 3
# 4: x2 y1 4
# 5: 5
如何使用 dplyr 或 data.table 包获取“输出”表?
谢谢
【问题讨论】:
标签: r dplyr data.table grouping