在每列data.frame

时间:2018-09-19 10:53:33

标签: r dplyr

我有包含12个data.frame的列表。每个数据帧是从一月到十二月。这就是我在R Studio中名为Sheet_list的列表的样子。

enter image description here名称类型

所以我的问题是如何在适当的月份在每个这些表中添加附加列? Е.g1月1日,等等。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:2)

可能:

library(purrr)
library(dplyr)
l <- list(january=data.frame(id=c(1,2)),
         february=data.frame(id=c(3,4,5)))

l <- purrr::imap(l,function(x,y) mutate(x,month=y))
l
#$`january`
#  id   month
#1  1 january
#2  2 january
#
#$february
#  id    month
#1  3 february
#2  4 february
#3  5 february

答案 1 :(得分:1)

如果您不想使用任何外部软件包,请尝试:

l <- list(january=data.frame(id=c(1,2)),
          february=data.frame(id=c(3,4,5)))

lapply(names(l), function(x){
  l[[x]]$month <<- x
  return(NULL)
})

l
# $`january`
#   id   month
# 1  1 january
# 2  2 january
# 
# $february
#   id    month
# 1  3 february
# 2  4 february
# 3  5 february