- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
总结
不幸的是,箱线图是无用的,因为我使用的数据来自一个公开的调查问卷,它有两个主要问题:
为了使其更有用,我想将不相关的答案汇总到一个组中“例如:other problems
并重命名意思相同的问题,以便它们的措辞准确,从而可以在条形图中正确显示。不幸的是,我没有成功。
详细解释
让我们看一个示例代码(dataframe 上的名称只是示例:为了清楚起见,我对它们进行了修改,以便更容易理解两个或多个问题是相关的,但实际术语可以'总是从正则表达式中推导出来):
library(plyr)
library(dplyr)
library(tidyr)
df= read.csv("http://pastebin.com/raw/bUxANQw6")
problems = df %>%
select(Problems) %>%
gather(variable, value) %>%
group_by(value) %>%
summarise(Total = n()) %>%
arrange(desc(Total))
这导致以下数据框:
> problems
Source: local data frame [27 x 2]
value Total
1 Problem 1 282
2 Problem 3 268
3 Problem 2 186
4 No problems 160
5 Problem 4 76
6 Problem 5 68
7 Problem 6 6
8 Problem 7 5
9 Doesn't know 4
10 Problem 8 2
.. ... ...
>
可以看出我们有 27 个问题,仔细观察它们我们可以建立一些组:
No Problems
和 Doesn't know
Problem 9
, Problem 9'
, Problem 9''
或 Problem 9'''
(除其他外)我建议的方法
为了克服这两个问题,我认为我可以这样做:
为了处理同义词,我想到将同义词值重命名为一个,可能使用revalue
。命令,像这样:
df$Problems = revalue(df$Problems, c('Problem 9’' = 'Problem 9',
'Problem 9’’' = 'Problem 9',
'Problem 9’’’' = 'Problem 9'))
然而,作为一个 R 新手(以及编程语言的新手),我认为应该有一种更快的方法来实现这一点,因为维护“同义词字典”的任务将非常乏味并且会越来越多当收到更多回复时。
为了处理不相关的答案,我可以采用类似的方法,并将它们重估为 Other problems
,但我想以自动化的方式进行,因为随着调查问卷尚未完成,不相关术语的列表将会增加,我无法手动映射所有这些术语(例如:映射所有投票的值少于5 人 Total < 5
)。我想我应该创建一个函数并使用控制结构 ( for ... in
),但我还没有成功。
由于我需要显示按社区分组的答案箱线图,恐怕我不能使用 problems
数据框原样。因此,尽管计算每个问题的总票数很有用,但除了将其用作信息数据外,我不知道如何处理它。另一方面,我无法仅根据每个社区收到的回复来确定答案是否不相关,因为这会使结果产生偏差,因为预计不同的社区可能有不同的问题。
如果您能帮助解决这两个问题,我们将不胜感激。谢谢
最佳答案
我看了你的数据和代码。你的数据框,problems
得到 Problem 9’
, Problem 7'
等等。所以你想要的是删除 ’
和 '
.那是你的任务之一。您可以使用以下行完成此任务。
problems$value <- gsub(pattern = "’+|'+", replacement = "", x = problems$value)
您可以使用 which()
完成其他任务.您想要查找 Total < 5
的行.使用 which()
,你可以找到索引。然后,您替换 value
中的任何内容在 Other problems
的行中.我希望这就是您所追求的。
problems$value[which(problems$Total < 5)] <- "Other problems"
数据
problems <- structure(list(value = c("Problem 1", "Problem 3", "Problem 2",
"No problems", "Problem 4", "Problem 5", "Problem 6", "Problem 7",
"Doesn't know", "Problem 8", "Problem 9", "Problem 9’", "Other problems",
"Problem 10", "Problem 10’", "Problem 11", "Problem 11'", "Problem 12",
"Problem 13", "Problem 14", "Problem 15", "Problem 16", "Problem 17",
"Problem 18", "Problem 7'", "Problem 9’’", "Problem 9’’’"
), Total = c(282L, 268L, 186L, 160L, 76L, 68L, 6L, 5L, 4L, 2L,
2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-27L), .Names = c("value", "Total"))
编辑
看到OP的第一条评论,以下几行将制作一个数据框来绘制图形。
count(df, Neighborhoods, Problems) -> temp
temp$Problems <- gsub(pattern = "’+|'+", replacement = "", x = temp$Problems)
temp$Problems[which(temp$n < 5)] <- "Other problems"
group_by(temp, Neighborhoods, Problems) %>%
summarize(Total = sum(n)) -> temp2
关于r - 从开放式问卷中汇总和映射观察结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813805/
我正在制作一个包含抑郁症测试的 Android 应用程序。测试包括 9 个问题,每个问题有 4 个可能的答案。答案以单选按钮的形式出现。我需要按如下方式为单选按钮分配数值: 答案 1 = 0 答案 2
我希望在我的 Intranet 上创建一个问卷,通过一次只显示一个“部分”来简化用户的操作,并允许用户在表单中前进和后退。 我没有描述我的想法,而是制作了一个小 GIF 在我盲目地陷入困境之前,我真的
我们有一个系统,公民从服务器下载问卷,填写并提交问卷回复到服务器,存储在那里。在我们的案例中,这些是关于您的感受和症状的简单问题。然后,卫生 worker 可以访问问卷答复。卫生 worker 要的不
我正在尝试创建一个简单的 GUI,它会询问用户一系列问题,然后存储他们的回答以供稍后分配。我已经确定我的错误出在我的方法中,该方法基本上执行了简单的 7 个问题。我已将 7 个问题添加到 ArrayL
Django-survey 或 django-questionnaire 对我来说过于以管理员为中心(除了与 django 相关)。我希望我的用户创建他们自己的调查。类似于 Google 表单调查(查
第一次在论坛发帖。我遵循了所有提示,并在发布查询之前寻找可能的答案,但我找不到一步的答案,我陷入了困境。我不是程序员。我是一名教育技术专家,主要从事 Moodle 工作。我在 PHP 中创建了一些 b
我是一名优秀的程序员,十分优秀!