【问题标题】:how to get key after using map function in R在R中使用map函数后如何获取密钥
【发布时间】:2021-01-04 16:18:14
【问题描述】:

我正在尝试在 R 中使用地图功能,我有类似的东西

x <- list(a = 1, b = 2)
map(x, function (e) e + 100)

有没有办法在 map 函数中获取键 a、b?

例如,如果我想打印

a 1
b 2

【问题讨论】:

  • 您可以使用imap。不清楚输出格式是否需要imap(x, ~ setNames(.x, .y))如果要输出加100imap(x, ~ setNames(.x + 100, .y))
  • imap 是首选...但另一种选择是map2(x, names(x), ...)。这种思维方式的一个优点是它也适用于 base-R MapmapplyMap(function(obj, nm) {...}, x, names(x))(尽管最终我希望 R 对 imap 有一个微不足道的原生模拟)。

标签: r dictionary functional-programming


【解决方案1】:

正如@akrun 建议的那样

x <- list(a = 1, b = 2))
l <- x %>% imap(~{list(.x,.y)}) 
do.call(rbind,l)

  [,1] [,2]
a 1    "a" 
b 2    "b" 

甚至更简单:

do.call(rbind,x)
  [,1]
a    1
b    2

似乎准确地回答了您的预期输出

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多