r - 在R中分解多个谷歌表单条目
问题描述
我有一个 csv 文件,其中包含来自在线 Google 表单的结果,我用它在 R 中创建图表。表单上有一个问题允许多个回复,人们可以在回复中写下。Google 表单创建 CSV 的方式是将所有答案放在一行中。以下是几行的示例:
日期 | 治疗的改变 |
---|---|
1/4 | 开始新药,改变剂量 |
1/5 | 开始新药 |
1/6 | 停药,开始新药,新诊断 |
1/7 | 新诊断 |
我想创建一个条形图来总结对问题的所有个人响应,但为了做到这一点,我需要将每个响应与每一行分开(每个响应用逗号分隔)。有没有办法可以用 R 或 Python 编写代码?还是我应该处理 Google 表单本身?
解决方案
这是一种方法tidyr::separate_rows
:
library(tidyverse)
separated.data <- data %>%
separate_rows(Change.in.treatment,sep = ", ")
separated.data
# A tibble: 7 x 2
Date Change.in.treatment
<chr> <chr>
1 1/4 Started new medication
2 1/4 changed dose
3 1/5 Started new medication
4 1/6 Stopped medication
5 1/6 Started new medication
6 1/6 New diagnosis
7 1/7 New diagnosis
从这里,您可以轻松地制作条形图ggplot
:
ggplot(data = separated.data, aes(x = Change.in.treatment)) +
geom_bar(stat = "count")
样本数据:
data <- structure(list(Date = c("1/4", "1/5", "1/6", "1/7"), Change.in.treatment = c("Started new medication, changed dose",
"Started new medication", "Stopped medication, Started new medication, New diagnosis",
"New diagnosis")), class = "data.frame", row.names = c(NA, -4L
))
推荐阅读
- javascript - 车把 如果 var 长度大于
- python-3.x - 每当我打开我的 anaconda 命令提示符时,都会出现错误消息,所以请帮助我
- javascript - 过滤基于数组的属性值
- java - 有没有办法通过 java sdk 指定训练短语中的哪些单词正在满足 Dialogflow 中的插槽
- azure-language-understanding - 我的意图与预期的反应不符
- java - BluetoothAdapter.isEnabled() 上的 Java NullPointerException
- angularjs - 从 UI-Grid onblur 获取文本框值
- c# - EF - 保存更改 - 如何修复 VIOLATION OF PRIMARY KEY 约束
- c++ - C++二分查找类
- asp.net - 在 Web 上部署 ASP.Net 站点时如何“托管”SQL Server