我不能完全解决这一问题。 我怎么去:
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
答案 0 :(得分:4)
使用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)
答案 1 :(得分:0)
另一种选择是将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)