pivot_wider 是否需要 names_from 和 values_from 以外的任何其他信息
Does pivot_wider need any other info than names_from and values_from
我想知道为什么我下面的 pivot_wider()
调用没有 my_data
宽格式?
pivot_wider()
是否需要 names_from
和 values_from
之外的任何其他信息?
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)
我想知道为什么我下面的 pivot_wider()
调用没有 my_data
宽格式?
pivot_wider()
是否需要 names_from
和 values_from
之外的任何其他信息?
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)