r语言 - 反转数据帧中的列和行



>R-新手在这里! 所以我有这样的数据:

评分器1 1

评分员1 2

评分员1 3

评分器2 2

评分器2 3

评分器2 1

我希望输出看起来像这样:

|评分者 1 |1| 2| 3|

|评分器 2 |2| 3| 1|

我试过使用 groupby() 函数。但它似乎不起作用。

有人有什么想法吗?

dplyr解决方案:

df %>%
group_by(rater) %>%
summarise(ratings = paste0(ratings, collapse = ","))
# A tibble: 2 x 2
rater  ratings
* <chr>  <chr>  
1 rater1 1,2,3  
2 rater2 1,2,3 

如果您不希望在评级之间,,只需将","替换为collapse参数中的" "即可paste0

数据:

df <- data.frame(
rater = c(rep("rater1",3), rep("rater2",3)),
ratings = c(rep(c(1,2,3), 2))
)

除了Chris Ruehlemanns的回答。以下是您在评论中的请求的解决方案:使用leadslice

library(dplyr)
df %>% 
group_by(rater) %>% 
mutate(rating1 = ratings,
rating2 = lead(ratings),
rating3 = lead(ratings, 2)) %>% 
slice(which(row_number() %% 3 == 1)) %>% 
select(-ratings)

输出:

rater  rating1 rating2 rating3
<chr>    <dbl>   <dbl>   <dbl>
1 rater1       1       2       3
2 rater2       1       2       3

相关内容

  • 没有找到相关文章

最新更新