相关疑难解决方法(0)

用tidyr传播两列数据帧

我有一个如下所示的数据框:

  a b
1 x 8
2 x 6
3 y 3
4 y 4
5 z 5
6 z 6
Run Code Online (Sandbox Code Playgroud)

我想把它变成这个:

  x y z
1 8 3 5
2 6 4 6
Run Code Online (Sandbox Code Playgroud)

但是打电话

library(tidyr)
df <- data.frame(
    a = c("x", "x", "y", "y", "z", "z"),
    b = c(8, 6, 3, 4, 5, 6)
)
df %>% spread(a, b)
Run Code Online (Sandbox Code Playgroud)

回报

   x  y  z
1  8 NA NA
2  6 NA NA
3 NA  3 NA
4 NA  4 NA
5 …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr

12
推荐指数
4
解决办法
1011
查看次数

将数据框常用行转换为列

假设我有一个数据框,其中一列是一些重复值(日期,ID等).有没有办法将数据框转换为带有列的现在数据框而不是复制行?基本上我想要转置这样的东西:

col1 col2 col3
1    aa   30
2    aa   40
3    aa   10
1    bb   20
2    bb   12
3    bb   15
1    cc   40
2    cc   31
3    cc   12
Run Code Online (Sandbox Code Playgroud)

进入:

    aa   bb   cc
1   30   20   40
2   40   12   31
3   10   15   12
Run Code Online (Sandbox Code Playgroud)

以下是一些代码,用于生成第一个数据框的示例:

a <- c(rep(1:10, 3))
b <- c(rep("aa", 10), rep("bb", 10), rep("cc", 10))
set.seed(123)
c <- sample(seq(from = 20, to = 50, by = 5), size = 30, replace = TRUE)
d <- …
Run Code Online (Sandbox Code Playgroud)

r reshape

2
推荐指数
3
解决办法
2878
查看次数

标签 统计

r ×2

dplyr ×1

reshape ×1

tidyr ×1