dcast()参数“ value.var”

问题描述 投票:0回答:1

因此,我上次在一个数据帧上使用了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()的行为有所不同。

r rstudio reshape reshape2 dcast
1个回答
0
投票

以下为注释,下面是重复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))
© www.soinside.com 2019 - 2024. All rights reserved.