根据 combn 为列表中的数据框分配名称
Assign names to dataframes within a list based on combn
我已经使用 alply (~500) 创建了一个数据帧列表;
prevalence <- alply(combos, 2, prevalence.func)
我想根据相同的组合为每个 data.frame 分配新名称,替换默认的数字名称 1,2,3...500。
使用以下方法创建的可重现示例:
simple_list = replicate(n = 10,
expr = {data.frame(x = rnorm(20), y = rnorm(20))},
simplify = F)
combos <-combn(1:5, 2)
这样每个数据框的名称...
simple_list becomes simple_list-2
simple_list becomes simple_list-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'
我的赋值函数显然有问题。有什么建议吗?
你可以试试:
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"
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"
我已经使用 alply (~500) 创建了一个数据帧列表;
prevalence <- alply(combos, 2, prevalence.func)
我想根据相同的组合为每个 data.frame 分配新名称,替换默认的数字名称 1,2,3...500。
使用以下方法创建的可重现示例:
simple_list = replicate(n = 10,
expr = {data.frame(x = rnorm(20), y = rnorm(20))},
simplify = F)
combos <-combn(1:5, 2)
这样每个数据框的名称...
simple_list becomes simple_list-2
simple_list becomes simple_list-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'
我的赋值函数显然有问题。有什么建议吗?
你可以试试:
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"
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"