r - 在 R 中旋转具有重复行的数据

标签 r reshape tidyr

尝试在 R 中做一个简单的支点,就像在 SQL 中一样。

我知道有人问过这个问题,但是我遇到了重复行的问题。

Pivoting data in R

目前数据采用这种格式(字符只是为了便于查看的占位符。实际数据是数字):

V1 V2 V3 V4
A  B  C  Sales
D  E  F  Sales
G  H  I  Technical
J  K  L  Technical

并且需要转换成这种格式:
Variable Sales Technical
V1       A     G
V1       D     J
V2       B     H
V2       E     K
V3       C     I
V3       F     L

我已经尝试过 reshape 和 tidyr 包,它们要么在 reshape 的情况下聚合数据,要么在 tidyr 的情况下为重复的行标识符抛出错误。

我不关心重复的行标识符,事实上有必要将它们识别为分析因素。

我会以错误的方式解决这个问题吗?这些是要使用的正确软件包还是有人可以建议另一种方法?

最佳答案

我希望这会奏效:

df %>% gather(Variable, Value, V1:V3) %>%
    group_by(V4, Variable) %>%
    mutate(g = row_number()) %>%
    spread(V4, Value) %>% ungroup() %>%
    select(-g)

# # A tibble: 6 x 3
#   Variable Sales Technical
# *    <chr> <chr>     <chr>
# 1       V1     A         G
# 2       V1     D         J
# 3       V2     B         H
# 4       V2     E         K
# 5       V3     C         I
# 6       V3     F         L

关于r - 在 R 中旋转具有重复行的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579405/

相关文章:

r - 从 data.frame 行中提取字符列表值并 reshape 数据

r - 将此循环翻译成purr?

r - 使用 purrr 的 map 函数的输入创建一个命名列表作为 R 中的输出

r - 组合两个单词以产生所有可能的字符组合

R代码: columns to rows i. e团体到个人

python - Pandas 从长到宽,多列

r - 使用多个ID列和值列通过pivot_longer()简化gather()

r - 在数据框中生成具有条件值的行

r - tidyr 中的 spread() 如何处理因子水平

r - 如何在ggplot2中指定回归线方程?