【发布时间】:2019-11-04 17:44:08
【问题描述】:
我正在尝试使用以下代码从长格式转换为宽格式。
data_ige<-read.csv("serology.csv",header = TRUE,na.strings=0)
library(tidyverse)
library(magrittr)
data_new <- data_ige %>% spread(test, value)
我有以下数据集 existing dataset
运行代码后,它会转换日期(但不是以我想要的方式),如下图所示,以黄色突出显示的项目表示这些值出现在多行中,但它们应该在第一行而不是一个新的行。每个患者都有 1 次访问或 2 次访问的数据。所以第 1 次访问的所有测试结果,我想在一行中查看它们,并在第二行中查看第 2 次访问的测试结果。
此屏幕截图显示了预期的结果。
【问题讨论】:
-
请使用
dput显示示例而不是图像。你试过library(data.table); dcast(setDT(df1), ID +date ~ test, value.var = 'value') -
根据图片,可能你需要
data_ige %>% group_by(id, date, test) %>% mutate(rn = row_number()) %>% ungroup %>% spread(test, value) -
嗨@akrun,我应用了你的代码,但不幸的是它对我不起作用,观察次数保持不变。我应用了这两个代码。
-
我根据显示的图像创建了示例,它在下面的解决方案中为我工作