使用R在List的元素中创建一个新变量

时间:2017-11-13 13:12:02

标签: r

我是R语言的新手。我有一个包含64个元素的列表(1个元素包含72个观察值)并尝试使用lapply函数创建一个带有其范围的新变量。任何线索都将受到高度赞赏

例如:

$x
Var1 Var2 
abc   345
def   678
ghi   891

$x2
Var1 Var2 
abc   345
def   678
ghi   891
.
.
.
.
64 elements

required o/p:
$x2
Var1 Var2 var3
abc   345  1
def   678  2
ghi   891  3
.
.
64elements

1 个答案:

答案 0 :(得分:0)

我们可以使用lapply在列表中的数据框中应用函数。

# Create an example list
dt <- data.frame(Var1 = c("abc", "def", "ghi"),
                 Var2 = c(345, 678, 891),
                 stringsAsFactors = FALSE)

dt_list <- list(dt, dt)
names(dt_list) <- c("x", "x2")

# Add one new column using lapply
dt_list2 <- lapply(dt_list, function(x){
  x[, "Var3"] <- 1:nrow(x)
  return(x)
})
dt_list2
# $x
#   Var1 Var2 Var3
# 1  abc  345    1
# 2  def  678    2
# 3  ghi  891    3
# 
# $x2
#   Var1 Var2 Var3
# 1  abc  345    1
# 2  def  678    2
# 3  ghi  891    3