R:用新数据帧替换列表中的数据帧

时间:2016-12-16 05:01:16

标签: r

例如,我在一个列表c中有三个数据帧a1,a2,a3

a1 <- data.frame(x=c(1,2), y=c(2,3))
a2 <- data.frame(x=c(3,4), y=c(4,5))
a3 <- data.frame(x=c(5,6), y=c(6,7))
c <- list(a1, a2, a3)

现在我有了一个新的数据框b1。我希望c中的a1替换为b1。

b1 <- data.frame(x=c(7,8,9), y=c(8,9,10))

我尝试使用c[1] <- b1,但这不起作用。 c <- list(b1, a2, a3)会做我想做的事,但是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您需要使用双倍而不是单个括号。

a1 <- data.frame(x=c(1,2), y=c(2,3))
a2 <- data.frame(x=c(3,4), y=c(4,5))
a3 <- data.frame(x=c(5,6), y=c(6,7))
c  <- list(a1, a2, a3)  
b1 <- data.frame(x=c(7,8,9), y=c(8,9,10))

c[[1]] <- b1
c
[[1]]
  x  y
1 7  8
2 8  9
3 9 10

[[2]]
  x y
1 3 4
2 4 5

[[3]]
  x y
1 5 6
2 6 7

This thread说明括号使用情况。