Whis эти данные кадра,Reshape из базы против dcast из reshape2 с пропущенными значениями
df <- expand.grid(id="01", parameter=c("blood", "saliva"), visit=c("V1", "V2", "V3"))
df$value <- c(1:6)
df$sex <- rep("f", 6)
df
> df
id parameter visit value sex
1 01 blood V1 1 f
2 01 saliva V1 2 f
3 01 blood V2 3 f
4 01 saliva V2 4 f
5 01 blood V3 5 f
6 01 saliva V3 6 f
Когда я перепрофилировать его в формате «широкий», я получаю одинаковые результаты как с помощью функции базового reshape
и функции dcast
от reshape2
.
reshape(df,
timevar="visit",
idvar=c("id", "parameter", "sex"),
direction="wide")
id parameter sex value.V1 value.V2 value.V3
1 01 blood f 1 3 5
2 01 saliva f 2 4 6
library(reshape2)
dcast(df,
id+parameter+sex~visit,
value.var="value")
id parameter sex V1 V2 V3
1 01 blood f 1 3 5
2 01 saliva f 2 4 6
Но если добавить некоторые недостающие значения, результаты отличается
df$value <- c(1,2,NA,NA,NA,NA)
df$sex <- c(NA,NA,NA,NA,NA,NA)
df
> df
id parameter visit value sex
1 01 blood V1 1 NA
2 01 saliva V1 2 NA
3 01 blood V2 NA NA
4 01 saliva V2 NA NA
5 01 blood V3 NA NA
6 01 saliva V3 NA NA
С базой reshape
, я получаю только один ряд
reshape(df,
timevar="visit",
idvar=c("id", "parameter", "sex"),
direction="wide")
id parameter sex value.V1 value.V2 value.V3
1 01 blood NA 1 NA NA
С dcast
, я получаю два ряда
dcast(df,
id+parameter+sex~visit,
value.var="value")
id parameter sex V1 V2 V3
1 01 blood NA 1 NA NA
2 01 saliva NA 2 NA NA
Есть ли способ справиться с этими недостающими значениями в базе reshape
, как я хотел бы использовать этот?
На странице справки, не очевидно, что, как 'reshape' обрабатывает недостающие значения. – akrun
Но где идет не-'' '' значение '2'? – jogo
В этом суть. Я хотел бы знать, где это происходит! – user3631369