第一个表是手头的数据,我希望使用它创建表2。在第二个表中,评论类型是需要创建的重要变量。它是使用第一个表创建的。按用户和视频分组,我们需要确定是先发表悲伤评论还是先发表快乐评论(来自第一个表中的快乐列。是意味着评论是快乐的,而不是意味着评论是悲伤的)。如果用户在视频中的悲伤评论之前首先做出快乐评论,则评论_如果在唯一视频中对于唯一用户仅存在一种类型的评论(如在V2和V3中的用户a或在V1中的用户b的情况下的快乐或悲伤),则将其编码为无。
| 用户|视频|评论|快乐|
| --|--|--|--|
| 一|V1| 1 |没有|
| 一|V1| 2 |是的|
| 一|V1| 3 |没有|
| 一|V2| 4 |是的|
| 一|V3| 5 |没有|
| 一|V3| 6 |没有|
| 一|V4| 7 |是的|
| 一|V4| 8 |没有|
| 一|V4| 9 |没有|
| B| V1| 10 |没有|
| B| V1| 11 |没有|
| B| V5| 12 |是的|
| B| V5| 13 |是的|
| B| V5| 14 |没有|
df <- tibble(
User = c("a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "b"),
Video = c("V1", "V1", "V1", "V2", "V3", "V3", "V4", "V4", "V4", "V1", "V1", "V5", "V5", "V5", "V5"),
Comment = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15),
Happy = c("No", "Yes", "No", "Yes", "No", "No", "Yes", "No", "No", "No", "No", "Yes", "Yes", "No", "No"))
字符串
| 用户|视频|评论类型|
| --|--|--|
| 一|V1|伤心|
| 一|V2|没有一|
| 一|V3|没有一|
| 一|V4|快乐|
| B| V1|没有一|
| B| V5|快乐|
1条答案
按热度按时间cvxl0en21#
case_when非常简单:
字符串
备注:
1.使用“Yes”和“No”表示TRUE和TRUE是不好的做法--它占用更多的空间,速度更慢,并且需要更长的代码。
1.您可以将
length(unique(Happy)) == 1
替换为n_distinct(Happy) == 1
,就像Jon Spring删除的答案一样(归功于他们)。