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

如何将问卷语言使用频率答复转换为结构化表格(已用strsplit拆分)

问卷答复转结构化表格解决方案

以下是基于R语言的具体处理步骤,承接你已使用strsplit(x, "\r\n")的操作,继续完成数据结构化:

1. 数据预处理

先清理原始答复中的冗余引号,并拆分每条答复的具体条目:

# 原始问卷答复数据
responses <- c(
  "\"A - Spanish 60 \\r\\nB - Both of them 10 \\r\\n C - English 30\"",
  "\"B - Both of them 50 \\r\\n C - English 50\"",
  "\"A - Spanish 30 \\r\\nC - English 70\""
)

# 清理引号并拆分条目(保留你已用的strsplit逻辑,补充清理步骤)
clean_items <- lapply(responses, function(x) {
  # 去除首尾双引号
  x <- gsub("^\"|\"$", "", x)
  # 按\r\n拆分后去除每个条目的前后空格
  strsplit(x, "\\r\\n")[[1]] |> trimws()
})

2. 映射类别并填充数值

定义A/B/C对应的列名,遍历每个条目提取数值,缺失类别自动填充0:

# 定义类别与目标列的映射关系
cat_map <- c("A" = "Spanish", "B" = "Both of them", "C" = "English")

# 处理每个答复的条目,生成结构化数据
structured_data <- lapply(clean_items, function(items) {
  # 初始化所有列值为0
  row_data <- setNames(rep(0, 3), cat_map)
  # 遍历每个条目提取数值
  for(item in items) {
    # 拆分条目获取类别代码和数值
    split_parts <- strsplit(item, " - | ")[[1]]
    code <- split_parts[1]
    num_val <- as.numeric(split_parts[length(split_parts)])
    # 赋值到对应列
    row_data[cat_map[code]] <- num_val
  }
  row_data
})

3. 生成最终表格

将处理后的列表转换为数据框,得到目标结构化表格:

# 转换为数据框
final_table <- do.call(rbind, structured_data) |> as.data.frame()

# 重置行名为序号(可选)
rownames(final_table) <- NULL

# 输出结果
print(final_table)

运行后输出的结果即为:

Spanish Both of them English
1      60           10      30
2       0           50      50
3      30            0      70

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:10:26