tidyr::收集不同类型的多个列

2023-12-01

我的问题类似于这个问题。我试图tidyr::gather多列。但是,链接中提供的解决方案不太理想,因为所有列的属性通常不相同,因此它们被删除。

请注意,我知道如何使用基本 R 执行此操作,但我正在尝试学习如何使用 tidyr 和/或 dplyr 执行等效操作。

下面我模拟了一些数据(效果不佳,但速度很快),这些数据说明了我经常遇到的情况(尽管我通常有更多的专栏遵循这种相同的模式)。我已经提供了基本解决方案stats::reshape这样你就可以看到我想要的输出。

任何帮助将非常感激。

set.seed(123)
male_g6 <- rbinom(100, 1, .5)
ell_g6 <- rbinom(100, 1, .1)
sped_g6 <- rbinom(100, 1, .15)
pullouts_g6 <- rbinom(100, 5, .1)
disability_g6 <- replicate(100, 
                sample(
                    c("asd", "cd", "ed", "hi", "id", "ohi", "ld", "none"),
                    1,
                    prob = c(rep(0.01, 6), 0.05, 0.89)
                    )
                 )
score_g6 <- rnorm(100, 200, 10)
score_g7 <- score_g6 + 5 + rnorm(100, 0, 2)
score_g8 <- score_g7 + 5 + rnorm(100, 0, 2)

d <- data.frame(
        SID = 1:100,
        male_g6 = male_g6,
        male_g7 = male_g6,
        male_g8 = male_g6,
        ell_g6 = ell_g6,
        ell_g7 = ell_g6,
        ell_g8 = ell_g6,
        sped_g6 = sped_g6,
        sped_g7 = sped_g6,
        sped_g8 = sped_g6,
        pullouts_g6 = pullouts_g6,
        pullouts_g7 = pullouts_g6,
        pullouts_g8 = pullouts_g6,
        disability_g6 = disability_g6,
        disability_g7 = disability_g6,
        disability_g8 = disability_g6,
        score_g6 = score_g6,
        score_g7 = score_g7,
        score_g8 = score_g8
    )

随着基础重塑

ld <- stats::reshape(d,
        idvar = "SID",
        varying = list(
            c("male_g6", "male_g7", "male_g8"),
            c("ell_g6", "ell_g7", "ell_g8"),
            c("sped_g6", "sped_g7", "sped_g8"),
            c("pullouts_g6", "pullouts_g7", "pullouts_g8"),
            c("disability_g6", "disability_g7", "disability_g8"),
            c("score_g6", "score_g7", "score_g8")
            ),
        v.names = c("male", "ell", "sped", "pullouts", "disability", "score"),
        times = 6:8,
        timevar = "Grade",
        direction = "long"
    )
ld <- ld[order(ld$SID), ]

您需要收集超出您想要结束的内容,以便您可以将年级水平与标题分开,然后您可以展开回宽格式:

ld2 <- d %>% gather(var, val, -SID) %>%     # gather to long form
    # separate grade from variable names
    separate(var, c('var', 'grade'), sep = '_g', convert = TRUE) %>% 
    spread(var, val, convert = TRUE)    # spread back to wide

head(ld2)

##   SID grade disability ell male pullouts    score sped
## 1   1     6         cd   0    0        1 196.2440    0
## 2   1     7         cd   0    0        1 203.2739    0
## 3   1     8         cd   0    0        1 211.1347    0
## 4   2     6       none   0    1        0 194.3812    1
## 5   2     7       none   0    1        0 195.3957    1
## 6   2     8       none   0    1        0 202.4890    1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tidyr::收集不同类型的多个列 的相关文章

  • 计算级别内的值

    我在 R 中生成了一组级别cut 例如假设 0 到 1 之间的小数值 分为 0 1 个区间 gt frac lt cut c 0 1 breaks 10 gt levels frac 1 0 001 0 1 0 1 0 2 0 2 0 3
  • 在 mts 对象上使用 Apply 系列函数

    在 mts 对象上使用 apply 或 sapply 会在发送到函数时删除其时间序列属性 我应该如何在 mts 对象中的每个时间序列上应用相同的函数 带有 ts 输入和 ts 输出 并返回它 最好是 mts 我的意思是除了使用 for 循环
  • R:错误消息---包错误:“functionName”未从当前命名空间解析

    我正在使用一个一直运行到 R3 0 的软件包 问题如上所述 当我们调用在 R 2 15 2 中工作的函数时 从 R 3 0 开始我们得到一个错误 Error in C solarspectrum3 as double lon as doub
  • 在 Shiny 中使用 readlines(prompt = )

    我有一个代码 使用以下方式获取输入readlines prompt 功能 您能告诉我 Shiny 中的哪个输入函数足以将此代码适应 Shiny 应用程序吗 我需要一个交互功能 我无法使用简单的输入selectInput 因为我有很多read
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • R 中 write.table 文件名中的变量

    请帮助我解决一个幼稚的问题 已经用谷歌搜索 并尝试了很多变体 但失败了 如何使用 R 中 write table 的文件名中的变量保存文件 脚本循环遍历 dir 中的文件 应用一些函数 然后将结果保存到具有相同名称但附加结尾的文件中 谢谢
  • Dplyr 多重滞后整齐评估?

    我试图在 dplyr 中使用尽可能少的代码来实现多个滞后 同时坚持整洁的评估 以下标准评估 SE 代码有效 if require dplyr install packages dplyr library dplyr a as tibble
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr
  • 如何用日语创建 ggplot2 标题?

    我正在准备日语演示文稿 并希望图像的标题和图例名称为日语 我可以让文本在 RStudio 中渲染得很好 但是当渲染图像时 日语字符仅显示为方框 x 10 10 y x x df data frame x y ggplot df aes x
  • 如何在multilist中设置xlim?

    以下代码创建 3 个向量 并将它们显示为交错直方图 a lt c 1 2 3 b lt c 1 1 2 c lt c 1 1 1 l lt list a b c multhist l col c red green blue xlim c
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • 如何使用r中的dplyr在特定位置插入空白行

    我想在数据框中的特定位置插入空白行 我的数据框是这样的 dat lt data frame group c rep A 1 rep B 4 rep C 2 rep D 2 group 1 A 2 B 3 B 4 B 5 B 6 C 7 C
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 在 R Shiny 中显示/隐藏整个框元素

    我目前正在尝试找到一种方法来隐藏 显示 R Shiny 中的整个 box 元素 以及里面的所有内容 我想创建一个可能的按钮 它允许用户展开特定框 然后使用相同 甚至不同 的按钮隐藏它 我不想使用条件面板 因为我的应用程序非常大并且会产生一些
  • 将 csv 文件上传到shinyApps.io

    我的应用程序在本地运行良好 并且我能够成功地将应用程序部署到shinyapps io 服务器 但是当我尝试使用shinyapps URL 在浏览器中加载应用程序时 收到以下错误消息 错误对象 数据 不是成立 我认为这是因为 data 变量从
  • 一次评论多个对象

    假设您有一个变量 a 到 j 的列表 for x in 1 10 assign letters x x 您将如何评论那些最近创建的对象 我尝试过类似的事情 for x in 1 10 comment get letters x lt pas
  • 使用插入符和方法 = gamLoess 进行训练时 R 崩溃

    当我运行下面的代码时 R 崩溃了 如果我在训练调用中注释掉tuneGrid行 就不会发生崩溃 我已经用另一个数据集尝试过此操作 但仍然使 R 崩溃 崩溃消息是 R 会话中止 R遇到致命错误 会话被终止 开始新会话 代码是 library s
  • 当在另一行中找到元素逗号分隔时合并行

    您好 我有一个数据框 例如 species family Events groups 1 SP1 A 10 22 G1 2 SP1 B 7 G2 3 SP1 C D 4 5 6 1 3 G3 G4 G5 G6 4 SP2 A 22 10 G
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD

随机推荐

  • 为什么 String.Empty 是无效的默认参数?

    如果我输入以下内容 public Response GetArticles string Filter String Empty Body Visual Studio 给我这个错误 Filter 的默认参数值必须是编译时常量 如果我改变St
  • 读取Excel文件工作表名称

    我有一个导出过程 可将数据从 Access 表传输到 Excel 文件 有几次我遇到了问题 该过程没有在 Excel 中生成一张或多张工作表 1 张工作表 1 个表格 因此 当传输完成后 我希望 Access 检查所有工作表是否都位于 Ex
  • 如何解析具有浏览器兼容性的可编辑 DIV 文本

    我将 div 设为可编辑 当我尝试解析 div 的文本时 我需要执行以下正则表达式 innerDOM div I had downloaded all the material from the Intern br You will fin
  • AngularJS ng-options 选定值的问题

    在 AngularJS 中使用 ng options 时 我遇到了一个奇怪的问题 我的场景非常简单 与 ng model 绑定一个值作为所选选项 从后端加载 选择 的值 将加载的值绑定到 select 我从后端加载的对象是一个键 值 例如
  • Access SQL - 插入多行不起作用

    INSERT INTO EMP 1 EMP NUM EMP LNAME EMP FNAME EMP INITIAL EMP HIREDATE JOB CODE VALUES 101 News John G 08 Nov 00 502 102
  • 如何在 fancybox V2 中为 iframe 设置不同的高度/宽度?

    我一直在使用 Fancybox 1 3 4 就在那里 我在链接本身中有 iframe 的尺寸 这是我如何拥有它的一个例子 test html width 675 height 470 当我单击链接 fancybox 时 将打开具有这些尺寸的
  • 在 Fortran 90 中打开多个文件

    我想打开 10 000 个文件 文件名从abc25000 until abc35000并将一些信息复制到每个文件中 我写的代码如下 PROGRAM puppy IMPLICIT NONE integer i CHARACTER len 3
  • 在 XNA 中沿着曲线路径制作 Sprite 动画

    我想在 XNA 游戏中实现弹道轨迹 并试图找出使弹丸遵循重力曲线的最佳方法 我能想到的最好的办法是首先计算曲线并存储在 Curve 类中 然后让精灵沿着那条曲线移动 但我无法真正弄清楚如何沿着该曲线实际移动精灵 我该怎么做 或者有更好的方法
  • 如何在scrollview中滚动RecyclerView

    如何在scrollview中滚动RecyclerView上方的所有内容 我必须在滚动视图中实现 RecyclerView 如下代码所示 但不能滚动 RecyclerView 请给出答案
  • Delphi - 使用 ListView 拖放

    晚上好 我有这个代码可以使用拖放方法用于files TForm1 class TForm public procedure DropFiles var msg TMessage message WM DROPFILES end proced
  • Azure 事件网格 Blob 存储 - 防止重复 Blob 创建事件?

    我在周五的客户测试期间注意到 Blob 存储事件有一点奇怪的行为 现在我想知道是否存在导致双事件 创建 Blob 的已知情况 因此基本上外部应用程序将 blob 写入容器 大多数 blob 像往常一样只触发一个 blob 创建的事件 但由于
  • 如何在 tkinter 中访问不同类的变量?

    我已经搜索了很多 但我仍然不知道如何访问 python 中不同类的变量 在这种情况下我想访问变量self v from PageOne上课到PageTwo class 这是我的代码 import tkinter as tk import s
  • 如何将查询字符串值从 AWS API Gateway 传递到 Lambda C# 函数

    我有一个 C 方法 已成功将其发布为 AWS Lambda 函数 它看起来像这样 public class MyClass public async Task
  • 如何序列化运行时添加“属性”到Json

    我实现了在运行时向具有特殊 SystemComponent PropertyDescriptor 的对象添加 属性 的可能性 由于这些属性只能通过 ComponentModel TypeDescriptor 访问 而不能通过反射访问 因此这
  • 如何检查Access数据库表中是否存在特定列

    我想知道如何检查特定列 例如 日期 是否存在于特定表 例如 myTable 中Access数据库 我读了这个答案它提供了一个查询 该查询会产生另一个查询 IF NOT EXISTS SELECT FROM sys columns WHERE
  • 在R中如何将经度和纬度转换为可在ggplot2或ggmap中使用的格式[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我得到了原始经度 纬度数据 其格式无法由 R 地图处理 所以我想知道是否有一些 R 函数或算法可以帮助我将这些原始数据转换为可读格式 也许是UTM 这是我的原始数据 纬度 32 14
  • 如何正确处理来自 ListenableFuture 番石榴的异常?

    我有一个库 其中为我们的客户提供了两种方法 同步和异步 他们可以调用他们认为适合其目的的任何方法 执行 Synchronous 等待直到得到结果 然后返回结果 execute Asynchronous 立即返回一个 Future 如果需要
  • 如何使用 Kafka 流 DSL 函数处理重复消息

    我的要求是跳过或避免使用 kafka 流 DSL API 从 INPUT 主题接收到的重复消息 具有相同的密钥 如果发生任何故障 源系统可能会向 INPUT 主题发送重复的消息 FLOW 源系统 gt 输入主题 gt Kafka Strea
  • Misra-C 2012 规则 10.1 布尔操作数在表达式为布尔类型的情况下使用

    以下几行会产生 Misra 违规 unsigned int u16 a unsigned char u8 b if u16 a u8 b Generates Misra C 10 1 violation u16 a 2 1 Generate
  • tidyr::收集不同类型的多个列

    我的问题类似于这个问题 我试图tidyr gather多列 但是 链接中提供的解决方案不太理想 因为所有列的属性通常不相同 因此它们被删除 请注意 我知道如何使用基本 R 执行此操作 但我正在尝试学习如何使用 tidyr 和 或 dplyr