R) 如何将唯一 ID 中的 2 个唯一值作为该唯一 ID 的两个新列移动?

R) How to move 2 unique values in unique id as two new columns for that unique ID?

z <- c("1001","1001","1002","1002")
h <- c("Yes","No","Yes","No")
count <- c("300","200","500","100")
df = data.frame(z,h,count)
df
      z   h count
  1 1001 Yes   300
  2 1001  No   200
  3 1002 Yes   500
  4 1002  No   100

在这里,我在“z”列中有两个重复的值,但在“h”和“count”中具有不同的值。我想创建两个名为“h2”和“count2”的新列,它们具有“z”中每个唯一 ID 的唯一值。这是预期的结果。我将如何用代码编写它?

           z  h count   h2    count2
      1 1001 Yes   300  No    200
      2 1002 Yes   500  No    100
     

我相信您正在寻找 pivot_wider() 函数

df %>% 
  pivot_wider(names_from = c(h),values_from = c(h,count)) %>% 
  rename(z=z,h=h_Yes,h2=h_No,count=count_Yes,count2=count_No)