2

方法で、alply(〜500)を使用してデータフレームのリストを作成しました。

prevalence <- alply(combos, 2, prevalence.func)

デフォルトの数値名 1,2,3...500 を置き換えて、同じコンボに基づいて各 data.frame に新しい名前を割り当てたいと思います。

以下を使用して作成された再現可能な例:

simple_list = replicate(n = 10,
                 expr = {data.frame(x = rnorm(20), y = rnorm(20))},
                 simplify = F)

combos <-combn(1:5, 2)

各データフレームの名前が...

simple_list$1 becomes simple_list$1-2
simple_list$10 becomes simple_list$4-5

...これは、各 data.frame が元の関数で計算された間隔を教えてくれます。

私はlapplyを使ってみました;

someFunction <-function (x){

  names(simple_list)<-paste(combos[x,x[1]],combos[x,x[2]],sep="-")

 }

lapply(simple_list,someFunction)

しかし、私はそこにエラーを受け取ります:

Error in combos[x, x[1]] : invalid subscript type 'list'

私の代入関数では明らかに何かが正しくありません。任意のヒント?

4

2 に答える 2

2

combnには引数FUNがあるので、

 names(simple_list) <- combn(5,2, FUN= paste, collapse='-')
 names(simple_list)
 #[1] "1-2" "1-3" "1-4" "1-5" "2-3" "2-4" "2-5" "3-4" "3-5" "4-5"
于 2016-01-30T12:42:48.460 に答える
2

あなたが試すことができます:

names(simple_list)<-lapply(combn(5,2,simplify=FALSE),function(x) paste(x,collapse="-"))
#names(simple_list)
#[1] "1-2" "1-3" "1-4" "1-5" "2-3" "2-4" "2-5" "3-4" "3-5" "4-5"
于 2016-01-30T12:08:47.703 に答える