首页 > 解决方案 > 在函数中,获取列表项的名称

问题描述

我正在编写一个函数来生成表格。请看下文。

x <- list(alpha = 1:10, 
      beta = exp(-3:3), 
      gamma = c(sin(pi/6), cos(pi/6), tan(pi/6))) 
lapply(x, function(x){
  temp <- tibble(Source = "foo",
                 Original = x,
                 Square = x ^ 2,
                 Cubic = x ^ 3)
  return(temp)
  }
)

输出如下所示:

在此处输入图像描述

问题是:如何使源列显示“alpha”、“beta”和“gamma”?

谢谢!

标签: r

解决方案


这可能不是最优雅的答案,但这有效。请注意,我purrr::map在这里使用而不是 lapply。

x <- list(alpha = 1:10 %>% as_tibble() %>% rename("alpha" = value), 
          beta = exp(-3:3) %>% as_tibble() %>% rename("beta"= value), 
          gamma = c(sin(pi/6), cos(pi/6), tan(pi/6)) %>% as_tibble() %>% rename("gamma" = value)) 

map(x, ~ tibble(source = colnames(.), original = ., square = .^2, cubic = . ^3))



推荐阅读