Python转R代码结果不符,疑循环逻辑实现有误求修正
Python转R代码结果不一致:循环逻辑修正
问题分析
你的R代码未正确复刻Python的逻辑:
- Python代码流程:按
|分割字符串得到多个子串 → 每个子串按,分割取第一个元素 → 筛选长度小于6的元素 → 用|连接结果 - 错误点:你的R代码中,
sapply(strsplit(x, '|', fixed = TRUE), function(i) i[1])仅取出了strsplit返回列表的第一个元素的首个值,没有遍历所有分割后的子串进行处理。
修正后的R代码
process_queued_skill_list <- function(x) { tryCatch({ # 按|分割字符串,得到子串向量 split_parts <- strsplit(x, '|', fixed = TRUE)[[1]] # 遍历每个子串,提取逗号前的第一个元素 a <- sapply(split_parts, function(part) { strsplit(part, ',', fixed = TRUE)[[1]][1] }) # 筛选长度小于6的元素 a <- a[nchar(a) < 6] # 用|连接结果 paste(a, collapse = '|') }, error = function(e) { 'NA' }) }
验证结果
当输入x <- '5006,31,2024-01-17 09:02:03.270|905033,31,2024-01-17 09:02:03.270'时,调用函数会返回预期的'5006'(905033长度为6,被过滤)。
内容的提问来源于stack exchange,提问作者Sara Stein
相关产品推荐
相关产品推荐

