我有超过 10k+ 行的下表:
set.seed(123)
df <- data.frame(col1 = c('A','A','A','A', 'B','B','B','B', 'C','C','C','C'),
col2 = c('flower','pet','bird','tree','flower','pet','bird','tree','flower','pet','bird','tree'),
col3 = sample(0:25, 12, replace = TRUE))
col1 col2 col3
1 A flower 14
2 A pet 18
3 A bird 13
4 A tree 2
5 B flower 9
6 B pet 17
7 B bird 21
8 B tree 10
9 C flower 4
10 C pet 19
11 C bird 13
12 C tree 21
我想按 col1
分组排列每一行然后按顺序排列为pet
, tree
, bird
, flower
来自 col2
然后在 col1
中只保留一次出现的值.
示例所需数据框:
col1 col2 col3
1 A pet 18
2 tree 2
3 bird 13
4 flower 14
5 B pet 17
6 tree 10
7 bird 21
8 flower 9
9 C pet 19
10 tree 21
11 bird 13
12 flower 4
我找不到上面提到的如何排列行。 如何做到这一点?
最佳答案
我不确定摆脱这些值是否是个好主意,因为会丢失信息。但这是摆脱重复:
df %>% arrange(col1) %>%
mutate_at(vars(col1), funs(replace(., duplicated(.), "")))
关于r - 在 R 中分组和按行自定义排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67216572/