我这里有面板数据.对于一个‘名字’,我想将新的一天的产品与所有前一天的产品进行比较.如果它们不同,则该行中新创建的值将为1,否则为0.我粗略地知道需要Mariate(),但不知道如何将第二天的所有产品与第一天的所有产品进行比较.任何帮助都将非常感谢!
这是我的意思的一个例子.第2天的产品"a"和"b"与第1天的产品是冗余的,因此"new_product"的值为0.而第6行的值为1,因为产品d从第1天开始不重复.
data <- matrix(c('name1', 'name1', 'name1',
'name1', 'name1', 'name1',
'1', '1', '1', '2', '2', '2',
'a', 'b', 'c',
'a', 'b', 'd'), nrow = 6, ncol = 3)
colnames(data) <- c('name', 'day', 'product')
data
#> name day product
#> [1,] "name1" "1" "a"
#> [2,] "name1" "1" "b"
#> [3,] "name1" "1" "c"
#> [4,] "name1" "2" "a"
#> [5,] "name1" "2" "b"
#> [6,] "name1" "2" "d"
ideal_data <- matrix(c('name1', 'name1', 'name1',
'name1', 'name1', 'name1',
'1', '1', '1', '2', '2', '2',
'a', 'b', 'c',
'a', 'b', 'd',
'0', '0', '0', '0', '0', '1'), nrow = 6, ncol = 4)
colnames(ideal_data) <- c('name', 'day', 'product', 'new_product')
ideal_data
#> name day product new_product
#> [1,] "name1" "1" "a" "0"
#> [2,] "name1" "1" "b" "0"
#> [3,] "name1" "1" "c" "0"
#> [4,] "name1" "2" "a" "0"
#> [5,] "name1" "2" "b" "0"
#> [6,] "name1" "2" "d" "1"