2016-08-18 17 views
0

わかりやすい名前の変数/データフレームの大きなリストがあります。例えば、_big_list = list(runner5_data, runner11_data, runner83_data)など。関数に渡されるパラメータ値を文字列として渡します。

これらのデータフレームのそれぞれを機能させる関数にダンプするループを実行したいのですが、パラメータ値の名前を取得して新しい列として追加することもできます。私は戻って、新しいリストにそれを返したい終わり。

...

place_holder_list = list() 
my_funct = function(data_from_list) { 
        df$helpme = dQuote(data_from_list) # or something similar?  
        # so df$helpme = 'iris' or 'mtcars', etc 
        # do other stuff 
        return(df) 
} 

ex_list = list(iris, mtcars) 
for (each_df in ex_list){ 
    my_funct(each_df) #help appending to list...new column in df should be iris$helpme = 'iris' 
} 
+0

どこで 'df'を定義しましたか? – akrun

答えて

0

私たちが必要な場合はこれは、Map

ex_list1 <- Map(cbind, ex_list, helpme = c("iris", "mtcars")) 
lapply(ex_list1, head, 2) 
#[[1]] 
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species helpme 
#1   5.1   3.5   1.4   0.2 setosa iris 
#2   4.9   3.0   1.4   0.2 setosa iris 

#[[2]] 
#    mpg cyl disp hp drat wt qsec vs am gear carb helpme 
#Mazda RX4  21 6 160 110 3.9 2.620 16.46 0 1 4 4 mtcars 
#Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4 mtcars 

で簡単に行うことができますこれを行う関数を作成することができます

f1 <- function(...) { 
     dots <- substitute(list(...))[-1] 
     helpme <- unlist(sapply(dots, deparse)) 
     lst <- list(...) 
     Map(cbind, lst, helpme = helpme) 
} 

f1(mtcars) 
f1(iris, mtcars) 
関連する問題