我有和id向量ids,一个分组变量group和一个因子变量factor,它在ids变量中的_前面有初始值。
ids <- c("54_a","54_b","44_a","44_c")
group <- c(1,2)
factor <- c(54,44)因此,54_a和54_b属于第一个因子54。44_a和44_b属于第二个因子44。
写出输出的规则是:
当fixed[1].
id属于第二因子,id属于第1组和第2组(G1,G2)。(G1,54_a,fixed1) = 1.0;因子1 (G1,54_b,fixed1) = 1.0;因子1 (G1,44_a,fixed2) = 1.0;因子2 (G1,44_c,fixed2) = 1.0;因子2 (G2,54_a,fixed1) = 1.0;因子1 (G2,44_a,fixed2)的#1= 1.0;因子2的#1 (G2,44_c,fixed2) = 1.0;因子2的#1
有什么想法吗?谢谢!
这是这个post的稍微简单一些的版本。
发布于 2020-09-04 01:26:36
下面是一种使用outer的方法:
c(t(outer(paste0('G', group), ids, function(x, y) {
ind <- match(sub('_.*', '', y), factor)
sprintf('(%s, %s, fixed[%s]) = 1.0', x, y, ind)
})))
#[1] "(G1, 54_a, fixed[1]) = 1.0" "(G1, 54_b, fixed[1]) = 1.0"
#[3] "(G1, 44_a, fixed[2]) = 1.0" "(G1, 44_c, fixed[2]) = 1.0"
#[5] "(G2, 54_a, fixed[1]) = 1.0" "(G2, 54_b, fixed[1]) = 1.0"
#[7] "(G2, 44_a, fixed[2]) = 1.0" "(G2, 44_c, fixed[2]) = 1.0"在函数中传递id和组,match传递id的部分,得到fixed#。
https://stackoverflow.com/questions/63707652
复制相似问题