2013-06-11 101 views
1

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

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] 

考虑这个例子中,两个dataframes,DF1和DF2,在列表中,L1。 我想从df1中删除列x1。如果这仅仅是一个数据帧,这是微不足道的。 但是一旦进入列表,我不确定如何操作这个数据框。 当我尝试在最后一条语句中覆盖它时,出现错误。

我的实际问题在列表中有大约100个数据框,其中大约10%有一列需要删除。我可以很容易地用他们的声明来辨认他们,但我不知道如何操纵他们。

谢谢!

回答

3

而不是

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

使用

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

最重要的差别在这里在于'[['访问_elements_列表,而'['访问_sub-list_。 – joran

+0

非常感谢joran和user2194122! –