【发布时间】:2018-12-02 07:00:42
【问题描述】:
我不能完全解决这个问题。 我怎么去:
Visit Test
1 A
1 B
2 A
2 C
3 B
收件人:
Visit A B C
1 TRUE TRUE FALSE
2 TRUE FALSE TRUE
3 FALSE TRUE FALSE
【问题讨论】:
我不能完全解决这个问题。 我怎么去:
Visit Test
1 A
1 B
2 A
2 C
3 B
收件人:
Visit A B C
1 TRUE TRUE FALSE
2 TRUE FALSE TRUE
3 FALSE TRUE FALSE
【问题讨论】:
使用dplyr 和tidyr 你可以做到
dd %>% mutate(Value=TRUE) %>%
spread(Test, Value, fill=FALSE)
# Visit A B C
# 1 1 TRUE TRUE FALSE
# 2 2 TRUE FALSE TRUE
# 3 3 FALSE TRUE FALSE
经过测试
dd<-read.table(text="Visit Test
1 A
1 B
2 A
2 C
3 B", header=T)
【讨论】:
另一个选项是使用reshape2::dcast 和fun.aggregate 来检查length 是否大于0。
library(reshape2)
dcast(df,Visit~Test, fun.aggregate = function(x)length(x)>0, value.var = "Test")
# Visit A B C
# 1 1 TRUE TRUE FALSE
# 2 2 TRUE FALSE TRUE
# 3 3 FALSE TRUE FALSE
数据:
df<-read.table(text="Visit Test
1 A
1 B
2 A
2 C
3 B",
header=TRUE, stringsAsFactor = FALSE)
【讨论】: