【问题标题】:Changing from long form to a vector form in a dataset [duplicate]在数据集中从长格式更改为矢量格式[重复]
【发布时间】:2015-03-23 03:31:45
【问题描述】:

我正在为此苦苦挣扎,

我想更改这个长数据框:

longdf <- data.frame(visitId = c("a", "b", "b", "c"),icd9 = c("441","4424", "443", "441"))

   visitId  icd9
1       a   441
2       b   4424
3       b   443
4       c   441

到这个表格,

  visitId  icd9
1       a   c(441)
2       b   c(4424,443)
3       c   c(441)

这样我就可以在各个行上使用 dplyr 编写 grep 语句。 帮助将不胜感激。

【问题讨论】:

  • aggregate(icd9 ~ visitId, longdf, paste) 似乎有效
  • 感谢理查德的工作就像一个魅力,N

标签: r plyr dplyr lapply


【解决方案1】:

以下是实现数据框连接值的几种快速方法。

Option 1:
# Alternative to paste (@ Richard Scriven), you can use toString
aggregate(icd9 ~ visitId, longdf, toString)

# You can also specify desired separator in collapse
aggregate(icd9 ~ visitId, paste,collapse=",",data=longdf)

Option 2:
# Using plyr, you can specify desired the separator in collapse
library(plyr)
ddply(longdf, .(visitId), summarize, rnames = paste(icd9, collapse = ","))

Option 3:
# Using ddply, you can specify desired the separator in collapse
library(dplyr)
longdf %>% group_by(visitId) %>% summarise (rnames = paste(icd9,collapse =     ","))
# Output
#  visitId   rnames
#1       a      441
#2       b 4424,443
#3       c      441

希望这会有所帮助。

【讨论】:

  • 非常有用,谢谢 Manohar。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 2015-08-04
  • 2016-07-12
  • 2019-09-14
相关资源
最近更新 更多