gpt4 book ai didi

r - 基于不同的多行值集创建列

转载 作者:行者123 更新时间:2023-12-05 01:05:39 25 4
gpt4 key购买 nike

我想根据另一列中的行值识别一列中唯一的行值集,以最终在数据框中创建一个新列。下图说明了我的问题和预期结果(即 expected_outcome 列)。

例如:

  • 前 3 行的值为 T1trial 列中, 和值 D1, D2, D3group 列中.

  • 接下来 3 行的值为 T3trial 列中, 和值 D3, D2, D1group 列中.

因为设置D1, D2, D3D3, D2, D1 具有相同的包含,我希望所有 6 行在列 expected_outcome 中具有相同的值.

我的数据远比这复杂。我可能必须对超过 2 列进行分组。所以,我更喜欢这个问题的通用解决方案。下面是图中的数据。

test_data <- data.frame(
trial = c("T1", "T1", "T1", "T3", "T3", "T3", "T5", "T5", "T6", "T6", "T6"),
group = c("D1", "D2", "D3", "D3", "D2", "D1", "D1", "D3", "D1", "D3", "D2")
)

Data and expected result

最佳答案

我觉得你专栏最后一个trial应该是T7

library(dplyr)

test_data %>%
arrange(across(everything())) %>%
group_by(trial) %>%
mutate(expected_outcome = toString(group)) %>%
group_by(expected_outcome) %>%
mutate(expected_outcome = cur_group_id())
    trial group expected_outcome
<chr> <chr> <int>
1 T1 D1 1
2 T1 D2 1
3 T1 D3 1
4 T3 D1 1
5 T3 D2 1
6 T3 D3 1
7 T5 D1 2
8 T5 D3 2
9 T6 D1 2
10 T6 D3 2
11 T7 D2 3

数据:

test_data <- structure(list(trial = c("T1", "T1", "T1", "T3", "T3", "T3", 
"T5", "T5", "T6", "T6", "T7"), group = c("D1", "D2", "D3", "D3",
"D2", "D1", "D1", "D3", "D1", "D3", "D2")), class = "data.frame", row.names = c(NA,
-11L))

关于r - 基于不同的多行值集创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70503798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com