2016-01-27 192 views
0

嗨我想從一個大的list中使用data.frame作爲函數中的一個參數。我的數據有一個NBA球隊數據列表,其中list中的每個球隊都是data.frame;對於我所做的最有效的功能,我需要將團隊作爲參數。下面是一些測試數據:從數據框的列表中選擇一個數據框作爲R中的一個參數R

a<- data.frame(1,1:10) 
b<- data.frame("a",4,"d", 20:25) 

c<- list(a,b) 
names(c)<- c("a","b") 

test<- function(df){ 
    poop<- subset(c$df, c$df$X1.10==1) 
    return(poop) 
} 

在這個例子中我會希望像

test("a") 

運行的東西,但我掙扎得到它。任何想法將不勝感激

+0

您的預期輸出是什麼? – MichaelChirico

+0

做'測試(c [[1]])'。 c [[1]]是列表的第一個數據幀。你應該重寫你的函數來處理本地數據框(不是列表c) –

回答

0

看看這是你想要的。我做了一些改寫。首先,要在全球環境中返回數據幀的功能,應使用「< <」。如果不是,您可以保留「< - 」。但請記住,作爲局部變量,只有在函數運行時數據框纔會存在。這與Python中全局的變量賦值類似。 其次,有一個更好的方法來子集數據框,如下所示:

a<- data.frame(1,1:10) 
b<- data.frame("a",4,"d", 20:25) 

c<- list(a,b) 
names(c)<- c("a","b") 

test<- function(df){ 
    poop<<- subset(df, df$X1.10==1) 
    return(poop) 
} 

test(c[[1]]) 
相關問題