操纵列表中的数据框

时间:2013-06-11 21:09:47

标签: r dataframe

这可能是一个简单的问题,但我一直无法找到答案。 我想删除列表中的数据帧列。

x1<- rnorm(100,0,1)
x2<- rnorm(100,0,1)
x3<- rnorm(100,0,1)
x4 <- rnorm(100,0,1)

df1 <- data.frame(x1,x2,x3)
df2 <- data.frame(x4)

l1 <- list(df1,df2)

l1[1]

data.frame(l1[1])[,-1]

l1[1] <- data.frame(l1[1])[,-1]

考虑这个例子,其中两个数据帧df1和df2在列表中,l1。 我想删除df1中的列x1。如果这只是一个数据帧,这是微不足道的。 但是一旦进入列表,我不知道如何操纵这个数据帧。 当我尝试在最后一个语句中覆盖它时,我收到了一个错误。

我的实际问题在列表中有大约100个数据框,其中大约10%有一个我需要删除的附加列。我可以用一个lapply语句轻松识别它们,但我不知道如何操纵它们。

谢谢!

1 个答案:

答案 0 :(得分:3)

而不是

l1[1] <- data.frame(l1[1])[,-1]

使用

l1[[1]] <- data.frame(l1[1])[,-1]