R [duplicate] 中的函数和 for 循环问题

Function and for loop issue in R [duplicate]

提问人:Gabriella Schulz 提问时间:11/18/2023 最后编辑:M--Gabriella Schulz 更新时间:11/18/2023 访问量:66

问:

我正在使用的功能无法正常工作。该函数是通过使用代码将数据集与另一个数据集中的多个列进行匹配。匹配后,它会将多列替换为代码含义的描述。

代码条件预料:

法典 标签
04 肾病
06 贫血
00 没有
18 乙型肝炎

Birth_IndicatorsConditions:

并发症1 并发症2 并发症3
06 04
00
04 06 18
CleanConditionPreg <- function(Condition){
  codes <- Condition %>% select(starts_with(c("Complications")))
  labels <- data.frame(matrix(NA, nrow(Condition), 0))          
  names <- rep(NA, ncol(codes))

# For each column of codes, match corresponding labels and assign new variable names
    for (i in seq(1, ncol(codes))) {
      labels[,i] <- CodeConditionPreg[match(codes[,i], CodeConditionPreg$code),2] 
      names[i] <- paste0("Other_Complications", i-1)  
    }
  
    # Rename first diagnosis as principal, then append new named columns to data frame
    names[1] <- "Complications"
    colnames(labels) <- names
    Condition <- cbind(Condition, labels) 
   
}

Birth_IndicatorsWithConditions <- CleanConditionPreg(Birth_IndicatorsConditions)

这给了我这个空白值的打印输出,但正在生成新列: 输出 该函数似乎正在工作,但我不知道我缺少什么将标签放入更大的数据集中。

我试图让它看起来像:

并发症 Other_Complications1 Other_Complications2
贫血 肾病
没有
肾病 贫血 乙型肝炎
r 函数 for 循环

评论

3赞 wjandrea 11/18/2023
这是什么语言,R?请编辑以为其添加标签。顺便说一句,欢迎来到 Stack Overflow!请参观,并查看如何询问提示。
0赞 MrFlick 11/18/2023
如果包含一个简单的可重现示例,其中包含可用于测试和验证可能的解决方案的示例输入和所需输出,则更容易为您提供帮助。请不要在图片中张贴代码或数据
0赞 Jon Spring 11/18/2023
每当我看到一个问题,它有一个循环来匹配一个表中的数据到另一个表中的数据时,我的第一个想法就是看看联接是否有效。更简单,更快。
0赞 Jon Spring 11/18/2023
我认为这个问题几乎是一样的——这里的答案有帮助吗?stackoverflow.com/questions/35636315/......
1赞 M-- 11/18/2023
library(tidyverse); Birth_IndicatorsConditions %>% rowid_to_column() %>% pivot_longer(-c(rowid, date_of_birth, first, last, etc)) %>% left_join(CodeConditionPreg, by = c("value"= "Code")) %>% select(-value) %>% pivot_wider(names_from = "name", values_from = "label") %>% select(-rowid)

答: 暂无答案