首页 > 解决方案 > 在 R 中使用 tidyverse 如何以固定方式排列列值?

问题描述

ID score
a  1
a  2
b  2
b  4
c  4
c  5

我想将 id 更改为“a,b,c”命令这个

ID score
a  1
b  2
c  4
a  2
b  4
c  5

我试过的

> data <- read_csv(data)
> data <- factor(data$id, levels = c('a', 'b', 'c'))

这适用于表格,所以我尝试过,但不适用于此。有人知道有没有办法?

标签: r

解决方案


而不是将“id”列分配给data <-(这将用“id”值替换数据),它将用于ordering。在base R中,这可以通过

data1 <-  data[order(duplicated(data$ID)),]
row.name(data1) <- NULL

或与dplyr

library(dplyr)
library(data.table)
data %>%
     arrange(rowid(ID))

推荐阅读