小编LLL*_*LLL的帖子

在 ggplot2 中叠加/叠加分组条形图

我想制作一个条形图,其中包含两个时间点“之前”和“之后”的数据叠加。

在每个时间点,参与者都会被问到两个问题(“疼痛”和“恐惧”),他们会通过给出 1、2 或 3 的分数来回答。

我现有的代码很好地绘制了“之前”时间点的数据计数,但我似乎无法添加“之后”数据的计数。

这是我希望绘图在添加“之后”数据后的样子的草图,黑条代表“之后”数据:

在此处输入图片说明

我想在 ggplot2() 中绘制图,并且我尝试改编来自如何在 R 中叠加条形图的代码 但我无法让它用于分组数据。

非常感谢!

#DATA PREP
library(dplyr)
library(ggplot2)
library(tidyr)


df <- data.frame(before_fear=c(1,1,1,2,3),before_pain=c(2,2,1,3,1),after_fear=c(1,3,3,2,3),after_pain=c(1,1,2,3,1))


df <- df %>% gather("question", "answer_option") # Get the counts for each answer of each question 
df2 <- df  %>%
  group_by(question,answer_option) %>%
  summarise (n = n()) 
df2 <- as.data.frame(df2)


df3 <- df2 %>% mutate(time = factor(ifelse(grepl("before", question), "before", "after"),
                                        c("before", "after"))) # change classes and split data into two data frames
df3$n <- as.numeric(df3$n) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
1
解决办法
2240
查看次数

将数据帧拆分为新数据帧时的命名

我想基于变量(df$pet)的值创建三个新的数据帧,以便最终得到dfdogCorrect,dfcatCorrect和dfratCorrect.

我当前代码的问题是我无法使新数据框的命名起作用.我正在使用unique(df$pet),它将pet中的第一个独特元素分配给第一个新数据帧,而不管新数据帧的内容如何.

任何帮助你不胜感激.

初始点:

df <- data.frame(pet=c("dog","dog","dog","cat","cat","rat","rat","rat","rat"),relstatus=c(1,2,1,2,2,2,2,1,2),age=c(34,54,56,32,45,64,65,32,45), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)

期望的结果:

dfdogCorrect <- data.frame(pet=c("dog","dog","dog"),relstatus=c(1,2,1),age=c(34,54,56), stringsAsFactors = FALSE)
dfcatCorrect <- data.frame(pet=c("cat","cat"),relstatus=c(2,2),age=c(32,45), stringsAsFactors = FALSE)
dfratCorrect <- data.frame(pet=c("rat","rat","rat","rat"),relstatus=c(2,2,1,2),age=c(64,65,32,45), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)

当前代码:

s <- setNames(split(df, df$pet), paste0("df", unique(df$pet)))
list2env(s, globalenv())
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
45
查看次数

在变量名 R 的特定部分插入下划线

我想在数据框中所有变量名称的前三个字符后插入下划线。任何帮助将非常感激。

当前数据框:

df1 <- data.frame("genCrc_b1"=c(1,1,1),"genprd"=c(1,1,1) ,"genopr_b1_b2"=c(1,1,1))
Run Code Online (Sandbox Code Playgroud)

所需的数据框:

df2 <- data.frame("gen_Crc_b1"=c(1,1,1),"gen_prd"=c(1,1,1) ,"gen_opr_b1_b2"=c(1,1,1))
Run Code Online (Sandbox Code Playgroud)

我的尝试:

gsub('^(.{3})(.*)$', "_", names(df1))
gsub('^(.{3})(.*)$', '\\_\\2', names(df1))
Run Code Online (Sandbox Code Playgroud)

r

1
推荐指数
1
解决办法
2143
查看次数

标签 统计

r ×3

ggplot2 ×1