首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在r中具有排序逻辑的操作向量

在r中具有排序逻辑的操作向量
EN

Stack Overflow用户
提问于 2020-09-02 14:24:46
回答 1查看 35关注 0票数 0

我有和id向量ids,一个分组变量group和一个因子变量factor,它在ids变量中的_前面有初始值。

代码语言:javascript
复制
ids <- c("54_a","54_b","44_a","44_c")
 group <- c(1,2)
  factor <- c(54,44)

因此,54_a54_b属于第一个因子5444_a44_b属于第二个因子44

写出输出的规则是:

fixed[1].

  • When属于第一因子时,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的稍微简单一些的版本。

EN

回答 1

Stack Overflow用户

发布于 2020-09-04 01:26:36

下面是一种使用outer的方法:

代码语言:javascript
复制
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#

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63707652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档