【发布时间】:2018-10-08 12:26:14
【问题描述】:
我有一个 2 列的 data.frame df,前六行显示在这里,但它有更多的块序列,每个跨越 3 行:
blocksequenceid description
M049-S215-S085 ECDTM-49
M049-S215-S085 ICD-215
M049-S215-S085 ICD-85
M049-S213-S044 ECDTM-49
M049-S213-S044 ICD-213
M049-S213-S044 ICD-44
我想把它转换成这种格式:
blocksequenceid description1 description2 description3
M049-S215-S085 ECDTM-49 ICD-215 ICD-85
M049-S213-S044 ECDTM-49 ICD-213 ICD-44
我考虑过 dcast 和 reshape,但是当它显示 ERROR: column time not found for reshape 时我不知道该怎么做,而且我不确定 dcast 是否适合在这里使用。这是我尝试过的:
reshape(df, idvar='blocksequenceid', timevar = 'description', direction = 'wide')
reshape(df, idvar='blocksequenceid', v.names = 'description', direction = 'wide')
我确信这很简单,但我缺少一些东西。
【问题讨论】:
-
你可以这样使用
dcastdcast(blocksequenceid ~ description, data=df, value.var = "description")但你必须手动设置colnames,也许使用paste0 -
hmm 我之前尝试过,它正在做的是获取每个描述(其中有很多)并为每个描述创建一个新列,然后在每个新列下放置 0。我收到的消息是
aggregation function missing: defaulting to length
标签: r group-by rename dplyr spread