我尝试合并来自数据框的行,这些行对于表示变量的列具有特定值。在这种情况下,变量被称为" MORTC",值为1,2,3和4.找到的行被放入一个新的数据帧中。
我尝试合并这些,但结果数据框包含许多不适用的行。在我的数据集中,只有一行包含MORTC的值(即4),而所有其他行都不包含此变量的值。
即便如此,我仍然得到38行,其中37行在每列中都包含NA,结果应该只是MORTC值为4的一行。当我使用不同的变量/列
时,我没有遇到这个问题我用于合并行的函数如下:
reduceDataset <- function(Variablelist, ValueList, table){
Variables <- strsplit(Variablelist, "\\&|\\|")
Values <- strsplit(ValueList, "\\&|\\|")
newdf <- NULL
for(j in 1:(stri_count_regex(Variablelist, "\\&|\\|")+1)){
#if the collection of variables is the first in the list of variables
if(j == 1){
newdf <- table[table[sapply(Variables, "[", j)] == sapply(Values, "[", j),]
j <- 2
}
subdf <- table[which(table[sapply(Variables, "[", j)] == sapply(Values, "[", j)),]
if(grepl("\\|", Variablelist)){
newdf <- merge(newdf, subdf, all=TRUE)
}
else{
newdf <- merge(newdf, subdf)
}
}
return(newdf)
}
变量列表的输入是&#34; MORTC | MORTC | MORTC | MORTC&#34;
ValueList的输入是&#34; 1 | 2 | 3 | 4&#34;
如果有人能解释为什么所有额外的行也被添加而其他变量没有给我这个问题我会非常感激