【发布时间】:2021-12-12 01:56:08
【问题描述】:
在我的玩具data 中,对于每个唯一的study,数字 变量(sample 和group)的顺序必须从1 开始。但是:
例如,在study 1 中,我们看到有两个唯一的sample 值(1 和3),所以3 必须替换为2。
例如,在study 2 中,我们看到有一个唯一的group 值(2),因此必须将其替换为1。
在 study 3 中,sample 和 group 似乎都可以,这意味着它们的唯一值是 1 和 2(无需替换)。
对于这个玩具data,我的想要的输出如下所示。但我很欣赏一个功能性解决方案,它可以自动替换 data.frame 中任意数量的 numeric 变量,这些变量就像我在我的玩具 data 中展示的那样失去了顺序。
m="
study sample group outcome
1 1 1 A
1 1 1 B
1 1 2 A
1 1 2 B
1 3 1 A
1 3 1 B
1 3 2 A
1 3 2 B
2 1 2 A
2 1 2 B
2 2 2 A
2 2 2 B
2 3 2 A
2 3 2 B
3 1 1 A
3 1 1 B
3 1 2 A
3 1 2 B
3 2 1 A
3 2 1 B
3 2 2 A
3 2 2 B"
data <- read.table(text=m, h=T)
Desired_output="
study sample group outcome
1 1 1 A
1 1 1 B
1 1 2 A
1 1 2 B
1 2 1 A
1 2 1 B
1 2 2 A
1 2 2 B
2 1 1 A
2 1 1 B
2 2 1 A
2 2 1 B
2 3 1 A
2 3 1 B
3 1 1 A
3 1 1 B
3 1 2 A
3 1 2 B
3 2 1 A
3 2 1 B
3 2 2 A
3 2 2 B"
【问题讨论】:
标签: r dataframe function dplyr tidyverse