R:根据多个变量的值定义不同的模式[重复]

2023-12-07

这是我所拥有的:

data.frame(x=c(0,0,0,1,1,1), y=c(0,0,1,0,1,1))

  x y
1 0 0
2 0 0
3 0 1
4 1 0
5 1 1
6 1 1

这就是我想要的:

data.frame(x=c(0,0,0,1,1,1), y=c(0,0,1,0,1,1), pattern=c(1,1,2,3,4,4))

  x y pattern
1 0 0       1
2 0 0       1
3 0 1       2
4 1 0       3
5 1 1       4
6 1 1       4

也就是说,我有一堆列(不仅仅是两列)和数千行。我想遍历每一行,找出 x、y、z 等的不同组合是什么,将每个组合称为不同的模式,并为每一行返回该模式。

(上下文:我有多个基因在多个时间点的基因表达数据。我想通过根据某些内容在任何特定时间点是否上调或下调来定义模式,尝试查看哪些基因随着时间的推移类似地振荡)。

Thanks.


您可以使用dplyr::group_indices():

NSE版本

group_indices(df, x, y)
# [1] 1 1 2 3 4 4

SE版

group_indices_(df, .dots = names(df))
# [1] 1 1 2 3 4 4

这个函数不幸的一面是它不能与mutate函数(还),所以你必须将其用作:

df$pattern <- group_indices(df, x, y)

从链接的答案来看,即使非标准评估版本也不适用于mutate,标准评估版本的作用是:

df %>% mutate(pattern = group_indices_(df, .dots = c('x', 'y')))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R:根据多个变量的值定义不同的模式[重复] 的相关文章

随机推荐