r - 将数据框中的行列组合分配给变量
问题描述
我经常遇到以下问题。假设我从 dplyr 链生成以下汇总表:
dat = read.table(text = "treatment mean_pre sd_pre mean_post sd_post
DD 14.78429 20.65952 13.95886 18.86172
DR 10.50125 17.51840 21.33969 23.56563
RD 17.33781 19.19242 26.30031 26.10222
RR 24.44870 23.38217 26.74986 25.04986", header = T)
然后,我手动构造变量以供将来的代码部分使用,如下所示:
dd_mean_pre = 14.78429
dd_sd_pre = 13.95886
dd_mean_post = 13.95886
dd_sd_post = 18.86172
dr_mean_pre = 10.50125
依此类推,对于数据框中的所有单元格。是否有更快的方法将此数据框的行和列组合动态分配给 R 中的变量?
解决方案
也许,我们可以转向“长”格式,然后unite
library(dplyr)
library(tidyr)
out <- dat %>%
pivot_longer(cols = -treatment) %>%
mutate(treatment = tolower(treatment)) %>%
unite(trtname, treatment, name)
如果我们需要它作为不同的对象(不推荐)
library(tibble)
deframe(out) %>%
as.list %>%
list2env(.GlobalEnv)
对象是在全局环境中创建的
rr_mean_pre
#[1] 24.4487
dr_mean_post
#[1] 21.33969
推荐阅读
- facebook - Facebook:使用公共 URL 共享唯一图像并在本地丢弃图像。是不是一直在FB?
- spring-batch - 为什么不将 Spring Data JPA 与批处理一起使用?
- php - Laravel - 如何使用对象数组制作多过滤器?
- c# - 如何使用 Media Foundation 修复曝光过度的高分辨率照片?
- java - 结合调度器和执行器服务的咖啡因
- javascript - Gem Chartkick 图表未在 PDF 上呈现
- wordpress - WordPress:为什么博客页面的永久链接是最新的博客文章
- python - 在使用 python SDK 创建 Azure VM 时添加 SSH 密钥
- ruby-on-rails - 解析 database.yml 文件时出现 YAML 语法错误
- arrays - c - 与数组函数一起使用时 (int *)s 是什么意思