在R中以不同的方式计算焦点示例之前的不同值

lstz6jyr  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(83)

一个示例/测试数据看起来像下面这样。“dyad”是一组2个人在讨论“post”中互相交谈(1行= 1条消息)。这些观察结果是按时间顺序排列的。

structure(list(post = c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3), 
    dyad = c("111_222", "111_222", "111_222", "222_345", "333_567", 
    "333_899", "333_990", "435_123", "435_555", "435_123", "435_111", 
    "435_555")), class = "data.frame", row.names = c(NA, -12L
), codepage = 65001L)

我尝试创建的是两个变量:“响应1“和“响应2”。
*回答1
(a)不同于焦点二单元组(行)的不同二单元组的数目,其中(b)在一个post内的焦点二单元组(c)**之前。

  • response 2:这只是帖子中焦点对的顺序。

结果可能如下所示:

+------+---------+-----------+-----------+
| post | dyad    | response1 | response2 |
+------+---------+-----------+-----------+
| 1    | 111_222 | 0         | 1         |
+------+---------+-----------+-----------+
| 1    | 111_222 | 0         | 2         |
+------+---------+-----------+-----------+
| 1    | 111_222 | 0         | 3         |
+------+---------+-----------+-----------+
| 1    | 222_345 | 1         | 4         |
+------+---------+-----------+-----------+
| 2    | 333_567 | 0         | 1         |
+------+---------+-----------+-----------+
| 2    | 333_899 | 1         | 2         |
+------+---------+-----------+-----------+
| 2    | 333_990 | 2         | 3         |
+------+---------+-----------+-----------+
| 3    | 435_123 | 0         | 1         |
+------+---------+-----------+-----------+
| 3    | 435_555 | 1         | 2         |
+------+---------+-----------+-----------+
| 3    | 435_123 | 1         | 3         |
+------+---------+-----------+-----------+
| 3    | 435_111 | 2         | 4         |
+------+---------+-----------+-----------+
| 3    | 435_555 | 2         | 5         |
+------+---------+-----------+-----------+
8i9zcol2

8i9zcol21#

我们可以用

library(dplyr) # version >= 1.1.0
df1 %>%
   mutate(response1 = cummax(match(dyad, unique(dyad))-1), 
      response2 = row_number(), .by = c("post"))
  • 输出
post    dyad response1 response2
1     1 111_222         0         1
2     1 111_222         0         2
3     1 111_222         0         3
4     1 222_345         1         4
5     2 333_567         0         1
6     2 333_899         1         2
7     2 333_990         2         3
8     3 435_123         0         1
9     3 435_555         1         2
10    3 435_123         1         3
11    3 435_111         2         4
12    3 435_555         2         5

相关问题