因此,我上次在一个数据帧上使用了dcast(),其中一列是ID,每个ID分配了其他多个代码。我的df1看起来像这样:
ID codes gfreq
123 FGV34 0.988
123 FGV34 0.988
123 FGV34 0.988
566 WER45 na
566 FGV34 0.988
566 FGV34 0.988
为了将上述格式转换为:
ID FGV34 WER45
123 1 0
566 1 1
dcast(df1, ID ~ codes)
而且效果很好。现在,我有一个类似的数据框df2,它只有两个列,ID和代码。当我将其运行到dcast中时:1.我收到有关Value.var被覆盖的警告,并且将codes列用作value.var,这没关系2.这次获取输出的格式完全不同。
ID FGV34 WER45
123 FGV34 NA
566 FGV34 WER45
我已经检查了df1和df2中属性的数据类型。 ID和代码都相同。我需要帮助,以便像以前一样使用0或1代替NA和列名来获取输出。其次,我想了解dcast()的行为有所不同。
以下为注释,下面是重复ID
的示例。
library(dplyr)
library(tidyr)
df %>%
filter(!is.na(Codes)) %>%
spread(Codes, ID)
# 222 223 224
#1 1 1 2
df <- data.frame(ID = c("1","1","2","2"),
Codes = c(222:224, NA))