提问人:Anas116 提问时间:7/27/2023 最后编辑:Anas116 更新时间:7/27/2023 访问量:38
如何将一列的值重新定位到不同名称下的多个不同列中?[复制]
How can I relocate the values of one column into many different columns under different names? [duplicate]
问:
这个问题在这里已经有答案了:
如何将数据从长格式重塑为宽格式 (14 个答案)
为每个产品代码的前 n 周的值创建列 (1 个答案)
将变量的因子转换为数据帧的列 (2 个答案)
转换长到宽的数据库,将数据分布在 R 中的多个列上 (1 个答案)
4个月前关闭。
假设我有这个 df(但有数千个 ID 和数十次治疗)
df = data.frame(ID = c(1,1,1,2,2,2,2,2),
treatment = c('AB','CD','EF','AB','CD','GH','IM','LN') )
我希望获得以下输出
ID treatment_1 treatment_2 treatment_3 treatment_4 treatment_5
1 1 AB CD EF <NA> <NA>
2 2 AB CD GH IM LN
我不想要什么
ID .by Treatment_1 Treatment_2 Treatment_3 Treatment_4 Treatment_5 Treatment_6 Treatment_7 Treatment_8
<dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 1 1 AB CD EF NA NA NA NA NA
2 2 2 NA NA NA AB CD GH IM LN
答: 暂无答案
评论
library(dplyr); library(tidyr); df %>% mutate(rown = row_number(), .by = ID) %>% pivot_wider(names_from = "rown", values_from = "treatment", names_prefix = "Treatment_")
table(ID = df$ID, treatment = df$treatment) == 1
dplyr
dplyr
.by
group_by()