R 分散数据以创建唯一的行
我有一个数据帧,我想重塑,使每个medid,只有一行。我知道我可以使用spread来实现这一点,但它并没有考虑我想要的样子,我只是在阅读博客、教程等时无法理解这个概念,我只是不知道我哪里出了问题 我的数据目前看起来像R 分散数据以创建唯一的行,r,tidyr,R,Tidyr,我有一个数据帧,我想重塑,使每个medid,只有一行。我知道我可以使用spread来实现这一点,但它并没有考虑我想要的样子,我只是在阅读博客、教程等时无法理解这个概念,我只是不知道我哪里出了问题 我的数据目前看起来像 medid year dose drug 1 101 2001 500 A 2 101 2002 600 A 3 101 2003 750 A 4 101 2004 550 A 5 102 2001 300
medid year dose drug
1 101 2001 500 A
2 101 2002 600 A
3 101 2003 750 A
4 101 2004 550 A
5 102 2001 300 B
6 102 2002 330 B
7 102 2003 350 B
8 102 2004 390 B
9 103 2001 100 C
10 103 2002 NA C
11 103 2003 250 C
12 103 2004 125 C
但我想让它看起来像
medid dose.2001 dose.2002 dose.2003 dose.2004 drug.2001 drug.2002 drug.2003 drug.2004
1 101 500 600 750 550 A A A A
2 102 300 330 350 390 B B B B
3 103 100 NA 250 125 C C C C
我曾尝试使用spread()
,但它没有为每个大地水准面提供唯一的行,而且它看起来也不是我想要的
df <- data.frame(medid=c(101, 101, 101, 101, 102, 102, 102, 102, 103, 103, 103, 103),
year=c(2001, 2002, 2003, 2004, 2001, 2002, 2003, 2004, 2001, 2002, 2003, 2004),
dose=c(500, 600, 750, 550, 300, 330, 350, 390, 100, NA, 250, 125),
drug=c("A", "A", "A", "A", "B", "B", "B", "B", "C", "C", "C", "C"))
df %>% spread(year, medid)
df%价差(年,中期)
使用tidyr::pivot\u wide
,正如@Cettt建议的:
library(tidyr)
枢轴宽度(df,名称从=年,值从=c(药物,剂量),名称从=九月=“.”)
##tibble:3 x 9
#medid drug.2001 drug.2002 drug.2003 drug.2004 dose.2001 dose.2002 dose.2003 dose.2004
#
#110A 500 600 750 550
#2 102 B 300 330 350 390
#3 103 C 100 NA 250 125
使用tidyr::pivot\u wide
,正如@Cettt建议的:
library(tidyr)
枢轴宽度(df,名称从=年,值从=c(药物,剂量),名称从=九月=“.”)
##tibble:3 x 9
#medid drug.2001 drug.2002 drug.2003 drug.2004 dose.2001 dose.2002 dose.2003 dose.2004
#
#110A 500 600 750 550
#2 102 B 300 330 350 390
#3 103 C 100 NA 250 125
我想你在找tidyr::pivot\u wired
我想你在找tidyr::pivot\u wired