r - 根据它们所属的列表的类别按列的每个值分组
问题描述
今天非常具有挑战性,所以我想不出任何新的想法,所以这个问题的解决方案对你来说可能很明显。我有一个非常简单的数据框,如下所示:
structure(list(user_id = c(101, 102, 102, 103, 103, 106, 107,
111), phone_number = c(4030201, 4030201, 4030202, 4030202, 4030203,
4030204, 4030205, 4030203), id = 1:8), class = "data.frame", row.names = c(NA,
-8L))
还有一个列表:
list(c(1, 2, 3, 4, 5, 8), 6, 7)
我想id
根据它们属于列表元素的类别对我的数据框列中的每个值进行分组,最好使用purrr
包函数。所以想要的输出是这样的:
grp <- c(1, 1, 1, 1, 1, 2, 3, 1)
非常感谢你们,向你们学习/在你们身边学习是我一生的荣幸。
您忠诚的
阿努希拉万
解决方案
一种选择purrr
可能是:
df %>%
mutate(grp = imap(lst, ~ .y * (id %in% .x)) %>% reduce(`+`))
user_id phone_number id grp
1 101 4030201 1 1
2 102 4030201 2 1
3 102 4030202 3 1
4 103 4030202 4 1
5 103 4030203 5 1
6 106 4030204 6 2
7 107 4030205 7 3
8 111 4030203 8 1
推荐阅读
- javascript - 隐藏特定表的第 n 个孩子
- python - 我想把文本放在 pyqt QCalendarWidget
- javascript - 从数据表自定义过滤器修改的代码不起作用
- c# - 更改 ListView Xamarin.Forms 中的 TextColor
- flutter - 如何允许用户为他们正在添加的内容选择图标?
- node.js - 错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头 - Express + Request
- nativescript - 更改状态栏字体颜色
- java - 如何在android studio中获取微调器值并将其传递给文本视图
- python - 如何使用 Tensorflow 导出简单保存的模型图以进行图像分类?
- ruby - 如何使用 yajl-ruby 解析和过滤大 json 文件中的数据(2G 大小)