提问人:Reza AM 提问时间:8/17/2023 更新时间:8/17/2023 访问量:38
如何在 R 中使用 map 函数更改嵌套列表上的值
how to change value on nested list use map function in R
问:
需要帮助我有嵌套列表,我想将照片的所有值更改为空列表,列表如下:
df <- list(messaging = list (telegram = list (registered = 'true', photo = c(list()), LastSeen = '2023-03-03T01:54:31Z' ),
whatsapp = list (registered = 'true', photo = "dg872tg82f8gf782gf82", LastSeen = '2023-03-03T01:54:31Z', about = "John" ),
viber = list (registered = 'true', photo = "dg872tdewfrgggf782gf82", LastSeen = '2023-03-03T01:54:31Z', name = "John" )))
现在我像这样手动操作:
df$messaging$whatsapp$photo <- c(list())
df$messaging$viber$photo <- c(list())
我的输出期望如下图所示,但使用地图功能,因为在实际列表中将有很多嵌套列表
感谢您的帮助
答:
1赞
Mark
8/17/2023
#1
map(df, \(c1) map(c1, \(c2) map2(c2, names(c2), \(c3, n) if (n == "photo") c() else c3)))
- 对于 DataFrame 的每个子级 (C1)(消息传递)
对于 C1 (C2) 的每个孩子(Telegram、WhatsApp、Viber)
每个孩子和 C2 (C3) 的姓名(注册、照片、最后见过等)
- 如果名称 == “photo”,则返回 c()。否则,返回 c3
评论