将管道运算符序列转换为R函数或类似函数(理想情况下使用Tidyverse) 我正在尝试将管道运算符序列转换为R函数或类似函数(理想情况下使用Tidyverse)。
输入是一个整洁的数据框,以15个问题的回答作为变量,10个观察结果中的每一个都是4个标准回答中的一个(例如同意、不同意等) 输出应该是回答的摘要,包括每个问题/变量的回答/观察分布的计数和百分比 为了避免复制和粘贴以及改进代码,我想包装一个函数或类似的函数来计算循环中的计数和百分比,Purr map或类似的函数来迭代15个问题 谢谢你的建议将管道运算符序列转换为R函数或类似函数(理想情况下使用Tidyverse) 我正在尝试将管道运算符序列转换为R函数或类似函数(理想情况下使用Tidyverse)。,r,function,dictionary,R,Function,Dictionary,输入是一个整洁的数据框,以15个问题的回答作为变量,10个观察结果中的每一个都是4个标准回答中的一个(例如同意、不同意等) 输出应该是回答的摘要,包括每个问题/变量的回答/观察分布的计数和百分比 为了避免复制和粘贴以及改进代码,我想包装一个函数或类似的函数来计算循环中的计数和百分比,Purr map或类似的函数来迭代15个问题 谢谢你的建议 下面的代码按预期工作,并以问题表、计数和百分比以及Agree的值等进行响应。这最终是我试图大规模、优雅地实现的目标 DF %>% select(
下面的代码按预期工作,并以问题表、计数和百分比以及Agree的值等进行响应。这最终是我试图大规模、优雅地实现的目标
DF %>%
select(question) %>%
group_by(question) %>%
summarise(Count = n()) %>%
mutate (Percentage = round(100 * Count / sum(Count),0))
背景 我从一个整洁的数据框架开始:
*'data.frame': 10 obs. of 15 variables:
$ Question1 : Factor w/ 4 levels "Agree","Neither agree nor disagree",..: 1 1 1 1 1 1 1 1 1 1 ...*
以下内容让我很接近,没有百分比:
DF_as_list <- DF %>%
map(summary)
而不那么有用
> DF_from_list<- data.frame(matrix(unlist(DF_as_list),
> nrow=length(DF_as_list), byrow=T))
最后,
DF_as_tibble <- as_tibble(DF_as_list)
及
生成有用的摘要统计信息(最小值、中值、平均值、最大值、第一个和第三个Qu),但不生成响应的百分比分布。欢迎使用堆栈溢出!为了便于人们帮助您,请以与您相同的格式提供数据样本,最好在问题正文中包含
dput(您的_数据)
的输出。欢迎使用堆栈溢出!为了便于人们帮助您,请以与您相同的格式提供数据样本,最好在问题正文中包含dput(您的_数据)
的输出。
*'data.frame': 15 obs. of 4 variables:
$ X1: int 10 10 ...
$ X2: int 0 0 ...
$ X3: int 0 0 ...
$ X4: int 0 0 ...*
DF_as_tibble <- as_tibble(DF_as_list)
*Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 4 obs. of 15 variables:
$ Question1 : int 10 0 0 0
$ Question2 : int 10 0 0 0*
DF_as_tibble %>%
map(summary)