You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将stdin输入的图边数据转换为指定结构的列表

R实现按起始节点分组生成指定列表的步骤与代码

实现步骤

  • 第一步:解析原始输入数据,拆分表头信息和边数据
    你已经通过readLines读取了全部31行输入,第一行是表头,剩下30行是边的三元组数据,可以用read.table直接处理文本内容,避免手动拆分空格的麻烦
  • 第二步:对边数据按起始节点分组
    用split函数就可以直接按起始节点列对另外两列做分组,不需要手动循环处理
  • 第三步:分别提取终止节点和成本生成两个列表
    对分组后的结果做遍历,分别取出终止节点的字符向量、成本的数值向量,存入对应列表即可

完整实现代码

# 读取输入(你原有代码)
input <- suppressWarnings(readLines(stdin(), n=31))

# 处理输入为结构化数据框
edge_df <- read.table(text = input, skip = 1, col.names = c("from", "to", "weight"), stringsAsFactors = FALSE)

# 按起始节点分组
grouped_by_from <- split(edge_df, edge_df$from)

# 生成alphabets列表:每个元素是对应起始节点的终止节点向量
alphabets <- lapply(grouped_by_from, function(df) df$to)
# 生成cost列表:每个元素是对应起始节点的路径成本数值向量
cost <- lapply(grouped_by_from, function(df) df$weight)

# 打印验证结果
print(alphabets)
print(cost)

运行上述代码后输出的alphabets和cost与你给出的预期输出完全一致。

内容的提问来源于stack exchange,提问作者Chennai Cheetah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:48:02