2
的說我有A型重塑操作
dta <- data.frame(
id_1=as.integer(runif(1000,0,20) * 20),
id_2=as.integer(runif(1000,0,5) * 5),
X=LETTERS[as.integer(cut(runif(5),0:3/3))]
)
我想和三列,A替換X,B,C。這些列的值將如果X與對應於該值是TRUE在dta中爲id_1和id_2的特定組合觀察到新的表名,否則爲FALSE。作爲一個非常簡單的例子:
id_1 = {1, 1, 3}
id_2 = {1, 1, 2}
X = {A, B, A}
將成爲:
id_1 = {1, 3}
id_2 = {1, 2}
A = {TRUE, TRUE}
B = {TRUE, FALSE}
C = {FALSE, FALSE}
我覺得這是一種重塑手術,但怎麼也想不到使用常用的功能做這個工作。
更新
我想到了以下工作: 使用dplyr:
dta %>%
distinct %>%
mutate(y=1) %>%
spread(X, y, fill=FALSE)
但是每一行的總和僅是 '1',並因此需要