如何解决在R中广播了一个data.table
a1 <- data.table(id=c(1,1,2,3,3),var=c("6402","1","6302","3","6406","2","1"))
b1 <- data.table(var=c("6402","6302"),txt=c("A","B","A"))
mm <- b1[a1,on=.(var)]
dcast(mm,id~txt,function(x) any(!is.na(x)),fill=NA)
desired_output <- data.table(id=c(1,A=c(T,F,F),B=c(F,T,F))
如何获得期望的输出?某种程度上,聚合功能似乎正在和我玩游戏...
解决方法
删除id
行后,使dcast
因子变量并在drop = FALSE
中使用NA
。
library(data.table)
mm$id <- factor(mm$id)
dcast(na.omit(mm),id~txt,function(x) any(!is.na(x)),drop = FALSE)
# id A B
#1: 1 TRUE FALSE
#2: 2 FALSE TRUE
#3: 3 FALSE FALSE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。