将值分组到单列而不是多列中

问题描述 投票:0回答:1

我有包含组变量的多列数据集。我想将值分组到单列中

我有这样的数据集

VAR1 VAR2 得分
LOC1 20
LOC2 30
LOC3 40
LOC4 50
LOC5 60
LOC6 70

我希望输出应该是这样的

VAR1 得分
LOC1 20
LOC2 30
LOC3 40
LOC4 50
LOC5 60
LOC6 70
r dataframe
1个回答
1
投票
  1. dplyr
    接近
    reframe()
library(dplyr)

df %>%
  reframe(VAR1 = c(VAR1[1], VAR2),
          SCORE = c(NA, SCORE),
          .by = VAR1)

#     VAR1 SCORE
# 1   MALE    NA
# 2   LOC1    20
# 3   LOC2    30
# 4   LOC3    40
# 5 FEMALE    NA
# 6   LOC4    50
# 7   LOC5    60
# 8   LOC6    70

  1. base
    接近
    by()
by(df, df$VAR1, \(x) {
  with(x, data.frame(VAR1 = c(VAR1[1], VAR2), SCORE = c(NA, SCORE)))
}) |> unname() |> do.call(what = rbind)
© www.soinside.com 2019 - 2024. All rights reserved.