2013-06-11 99 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! –