我想基于它是否是重复行来创建新列。我按用户#日期订购了我的数据。我希望新列检查第一列中的值是否等于之前的行,然后对日期执行相同操作。
例如,我有前两列数据,并希望在第3列中创建一个布尔数组,无论它是否是新一天的新用户:
User# Date Unique
1 1/1/17 1
1 1/1/17 0
1 1/2/17 1
2 1/1/17 1
3 1/1/17 1
3 1/2/17 1
答案 0 :(得分:0)
样本数据集中可能存在拼写错误,因为根据给定标准,最后一行是唯一的
df1$Unique <- c(1, diff(df1$User) != 0 | diff(df1$Date) != 0)
User Date Unique
1 1 2017-01-01 1
2 1 2017-01-01 0
3 1 2017-01-02 1
4 2 2017-01-01 1
5 3 2017-01-01 1
6 3 2017-01-02 1
<强>更新强>
如果用户存储为因子,则以下内容将起作用
User <- c(1, 1, 1, 2, 3, 3)
User <- letters[User]
Date <- c("1/1/17", "1/1/17", "1/4/17", "1/1/17", "1/1/17", "1/2/17")
df1 <- data.frame(User, Date)
df1$Date <- as.Date(df1$Date, "%m/%d/%y")
df1$Unique <- c(1, diff(as.numeric(df1$User)) != 0 | diff(df1$Date) > 1)
User Date Unique
1 a 2017-01-01 1
2 a 2017-01-01 0
3 a 2017-01-04 1
4 b 2017-01-01 1
5 c 2017-01-01 1
6 c 2017-01-02 0
答案 1 :(得分:0)
这可能会为您提供所需的内容
create or replace type id_array_input VARRAY(20) OF NUMBER
create or replace type output_data_array VARRAY(20) OF VARCHAR(25)