【发布时间】:2021-05-25 22:14:36
【问题描述】:
问题:为了对R中的处方药使用情况做一些调查分析,我需要将同一个人(ID)的多行合二为一,如果有说的话,注明TRUE rows 中有TRUE。
这是数据:
df <- data.frame(ID = c("a","a","a","a","a","a"),
cardiovasc = c(T,T,T,T,T,T),
beta_blockers = c(F,F,F,F,F,F),
antibiotics = c(T,F,F,F,F,F),
stringsAsFactors=FALSE)
这是我想要的样子:
goal <- data.frame(ID = c("a"),
cardiovasc = c(T),
beta_blockers = c(F),
antibiotics = c(T),
stringsAsFactors=FALSE)
如您所知,尽管 df$antibiotics 在数据集中只有 1 个 TRUE,但当 ID 折叠成一行时,我希望它算作 TRUE。
我的尝试:
主要是,我一直在努力解决this post,虽然我觉得我很接近,但我还是得到了一个错误。这是我的尝试:
df <- df[, lapply(.SD, paste0, collapse=""), by=ID]
产生unused argument (by = ID)。我从同一篇文章中尝试了另一种方法,但这更加混乱,需要我将数据设为data.table。我需要保存为data.frame。
有什么想法吗?
【问题讨论】:
标签: r dataframe data.table