我有一个看起来像这样的分层数据框架(df),如果Document值为“ NA”,则相应的SubDoc代表最高级别的文档
Document SubDoc Level
"NA" Document 1
Document SubDocument1 "NA"
Document SubDocument2 "NA"
Document SubDocument3 "NA"
Document SubDocument4 "NA"
SubDocument1 Outcome1 "NA"
SubDocument1 Outcome2 "NA"
SubDocument1 Outcome3 "NA"
Etc ...
我希望级别表示从上到下的文档的级别数,目前我通过检查“文档”列是否为空以及是否将其分配为1来分配级别1,>
df$Level <- ifelse(is.na(df$Document), df$Level <- "1", df$Level <- "NA")
现在,我想通过检查文档列中的字符串在SubDoc列中是否匹配来分配该级别以下的所有级别(因为它们匹配的行将包含其父级是哪个级别)
match(df$Document,df$Subdoc)
在这种情况下返回它们匹配的位置的索引
"NA",1,1,1,1,2,2,2
我想做的就是获取那些索引号,并写一条语句,如果返回的行索引的Level值== 1,那么Level将得到2,因此例如第2行在第1行找到了一个匹配项,在该行中,Level == 1,因此第2行的Level值为2。结果数据帧看起来像这样
Document SubDoc Level "NA" Document 1 Document SubDocument1 2 Document SubDocument2 2 Document SubDocument3 2 Document SubDocument4 2 SubDocument1 Outcome1 3 SubDocument1 Outcome2 3 SubDocument1 Outcome3 3
但是我不确定如何为此写出解决方案。任何帮助表示赞赏
我有一个看起来像这样的分层数据框架(df),如果Document值为“ NA”,则对应的SubDoc代表文档Document SubSubDoc的最高级别...
我们可以使用match