原因(1)是的,空单元格中有NAs;(2) 否,如示例所示,对于给定的var,没有ID重复自身;(3) 不,并非所有vars都具有所有ID,如更新的示例所示。非常感谢。参观每个基本r功能变量 dput( varA<-c(1,3,4,2,5,NA,NA

原因(1)是的,空单元格中有NAs;(2) 否,如示例所示,对于给定的var,没有ID重复自身;(3) 不,并非所有vars都具有所有ID,如更新的示例所示。非常感谢。参观每个基本r功能变量 dput( varA<-c(1,3,4,2,5,NA,NA,r,dataframe,R,Dataframe,原因(1)是的,空单元格中有NAs;(2) 否,如示例所示,对于给定的var,没有ID重复自身;(3) 不,并非所有vars都具有所有ID,如更新的示例所示。非常感谢。参观每个基本r功能变量 dput( varA<-c(1,3,4,2,5,NA,NA) varA1<-c(.99,.95,.93,.89,.84,NA,NA) varB<-c(5,2,1,3,4,NA,NA) varB1<-c(.96,.93,.91,.85,.83,NA,NA) varC<-c(3,4


原因(1)是的,空单元格中有NAs;(2) 否,如示例所示,对于给定的
var
,没有ID重复自身;(3) 不,并非所有
var
s都具有所有ID,如更新的示例所示。非常感谢。参观每个基本r功能<代码>变量
dput(
varA<-c(1,3,4,2,5,NA,NA)
varA1<-c(.99,.95,.93,.89,.84,NA,NA)
varB<-c(5,2,1,3,4,NA,NA)
varB1<-c(.96,.93,.91,.85,.83,NA,NA)
varC<-c(3,4,1,5,2,6,7)
varC1<-c(.92,.91,.90,.82,.79,.72,.69)

df<-data.frame(varA,varA1,varB,varB1,varC,varC1))
varA varA1 varB varB1 varC varC1
001  .99   005  .96   003  .92
003  .95   002  .93   004  .91
004  .93   001  .91   001  .90
002  .89   003  .85   005  .82
005  .84   004  .83   002  .79
NA   NA    NA   NA    006  .72
NA   NA    NA   NA    007  .69
ID   varA1 varB1 varC1
001  .99   .91   .90
002  .89   .93   .79
003  .95   .85   .92
004  .93   .83   .91
005  .84   .96   .82
006  NA    NA    .72
007  NA    NA    .69
library(data.table)
nm <- names(df)[c(TRUE, FALSE)]

dcast(melt(setDT(df), measure = patterns("[A-Z]$", "\\d+$"), 
  value.name = c("ID", "value"), na.rm = TRUE)[,
     Var := nm[variable]], ID~Var, value.var = "value")
#    ID varA varB varC
#1:  1 0.99 0.91 0.90
#2:  2 0.89 0.93 0.79
#3:  3 0.95 0.85 0.92
#4:  4 0.93 0.83 0.91
#5:  5 0.84 0.96 0.82
#6:  6   NA   NA 0.72
#7:  7   NA   NA 0.69
varnames <- grep("var[[:upper:]]$",names(df), value = TRUE)
varlist <- lapply(varnames, function(x) na.omit(df[c(x,paste0(x,1))]))
Reduce(function(...) merge(..., by = 1, all = TRUE), varlist)
Reduce(function(...) merge(..., by = 1, all = TRUE), 
       lapply(grep("var[[:upper:]]$",names(df), value = TRUE), 
              function(x) na.omit(df[c(x,paste0(x,1))])))