我想知道为什么下面的 pivot_wider()
调用没有使 my_data
为宽格式?
除了 names_from
和 values_from
之外,pivot_wider()
还需要其他信息吗?
library(tidyverse)
before <-c(200.1, 190.9, 192.7, 213, 241.4, 196.9, 172.2, 185.5, 205.2, 193.7)
after <-c(392.9, 393.2, 345.1, 393, 434, 427.9, 422, 383.9, 392.3, 352.2)
my_data <- data.frame(
group = rep(c("before", "after"), each = 10),
weight = c(before, after)
)
pivot_wider(my_data, values_from = weight, names_from = group)
最佳答案
我们需要一个序列来解释“weight”中的重复元素。它可以使用 group_by(group) %>% mutate(rn = row_number())
或更轻松地从 data.table
的 rowid
创建>
library(data.table)
library(dplyr)
library(tidyr)
my_data %>%
mutate(rn = rowid(group)) %>%
pivot_wider(values_from = weight, names_from = group) %>%
select(-rn)
-输出
# A tibble: 10 x 2
# before after
# <dbl> <dbl>
# 1 200. 393.
# 2 191. 393.
# 3 193. 345.
# 4 213 393
# 5 241. 434
# 6 197. 428.
# 7 172. 422
# 8 186. 384.
# 9 205. 392.
#10 194. 352.
在base R
中,我们可以使用unstack
unstack(my_data, weight ~ group)
关于r - 除了names_from和values_from之外,pivot_wider是否还需要任何其他信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66079984/