有没有办法一次重新编码多个变量?

2024-05-05

我有一个学生成绩单分数的数据集,范围从 D- 到 A+。我想将它们重新编码为 1-12 的范围(即 D- = 1、D = 2 ... A = 11、A+ = 12)。现在我正在起诉revalue函数于plyr。我有几列想要重新编码 - 有没有比运行更短的方法来做到这一点revalue在每一列上?

一些数据:

student  <- c("StudentA","StudentB","StudentC","StudentD","StudentE","StudentF","StudentG","StudentH","StudentI","StudentJ")
read <- c("A", "A+", "B", "B-", "A", "C", "C+", "D", "C", "B+")
write <- c("A-", "B", "C", "C+", "D", "B-", "B", "C", "D+", "B")
math <- c("C", "C", "D+", "A", "A+", "B", "B-", "C-", "D+", "C")

df <- data.frame (student, read, write, math)

现在我正在像这样重新编码它们:

df$read.r <- as.numeric (revalue (df$read, c("D-" = "1",
                             "D" = "2",
                             "D+" = "3",
                             "C-" = "4",
                             "C" = "5",
                             "C+" = "6",
                             "B-" = "7",
                             "B" = "8",
                             "B+" = "9",
                             "A-" = "10",
                             "A" = "11",
                             "A+" = "12"
                             )))

除了运行 3 次(或更多次)之外,还有更好的方法吗?所有列都具有相同的值。


 df1 <- df[,-1]

df1[] <- as.numeric(factor(unlist(df[,-1]), 
         levels=paste0(rep(LETTERS[4:1], each=3), c("-", "", "+"))))
cbind(df, setNames(df1, paste(colnames(df1), "r", sep=".")))
#       student read write math read.r write.r math.r
#1  StudentA    A    A-    C     11      10      5
#2  StudentB   A+     B    C     12       8      5
#3  StudentC    B     C   D+      8       5      3
#4  StudentD   B-    C+    A      7       6     11
#5  StudentE    A     D   A+     11       2     12
#6  StudentF    C    B-    B      5       7      8
#7  StudentG   C+     B   B-      6       8      7
#8  StudentH    D     C   C-      2       5      4
#9  StudentI    C    D+   D+      5       3      3
#10 StudentJ   B+     B    C      9       8      5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法一次重新编码多个变量? 的相关文章

  • 一段 R 代码会影响 foreach 输出中的随机数吗?

    我使用运行模拟foreach and doParallel并与随机数 名为random在代码中 简而言之 我模拟一个足球联赛 随机生成所有比赛的获胜者以及相应的结果 在dt base没有比赛进行 在dt ex1 and dt ex24场比赛
  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • 如何在 R 中合并同名列表中的数据框?

    我有一个包含很多数据框的列表 如果它们具有相同的名称 我想合并它们 即合并所有具有相同名称 a 和 b 的数据框 像这样 a lt aaaaa b lt bbbbb c lt ccccc g lt list df1 lt data fram
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • 访问或解析 R 中的 summary() 中的元素

    我运行以下 R 命令来进行 Dunnett 测试并获取摘要 如何访问下面线性假设的每一行 这是摘要输出的一部分 基本上我不知道摘要的结构 我尝试使用名称 但它似乎不起作用 因为我没有看到任何命名属性来提供这一点 library multco
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段
  • 如何纠正 data.frame 上的字符编码

    我有一个像这样的数据框 data names lt data frame DATA c 1 5 rownames data names lt c IV xc1N JOS xc9 LUC xcdA RAM xd3N TO xd1O data
  • 多个动态滤镜更新闪亮

    我希望能够让 UI 输入闪亮 并根据用户之前的选择进行自我更新 因此 在下面的示例中 预期的行为是用户选择cyl vsor carb那么这将 过滤数据集mtcars用于创建绘图 即用户根据过滤条件调整绘图并 更新其他过滤器中的剩余输入选择
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • 在r中的某个阈值处破坏 cumsum() 函数

    例如我有以下代码 cumsum 1 100 我想打破它 如果一个元素 i 1 大于3000 我怎样才能做到这一点 因此 而不是这个结果 1 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 15
  • R,使用具有两种以上可能性的二项式分布

    我知道这可能是基本的 但我似乎有一个心理障碍 假设您想要计算在一个骰子上掷出 4 5 或 6 的概率 在 R 中 这很简单 sum 1 6 1 6 1 6 这给出了 1 2 这是正确答案 然而 我内心深处 可能应该保留的地方 认为我应该能够
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • 使用选定因子水平的值向 ggplot-barchart 添加水平线

    在这个情节中 df lt data frame factor as factor c rep A 3 rep B 3 Treatment c rep c A B C 2 values runif 6 0 1 ggplot df aes Tr
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • R:按组,测试一个变量的每个值是否存在于另一个变量中

    我有一个数据框架 结构如下 a lt c 1 1 1 2 2 2 3 3 3 3 4 4 b lt c 1 2 3 1 2 3 1 2 3 4 1 2 c lt c NA NA 2 NA 1 1 NA NA 1 1 NA NA df lt
  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso

随机推荐

  • SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 laravel 9

    尝试分配外键 但是当您运行迁移时 我收到此错误 我不明白问题是什么 SQLSTATE HY000 一般错误 1215 无法添加外键约束 SQL alter tablecategories添加约束categories parent key f
  • 有没有办法找出我尚未同步的变更集?

    在 TFS 中我可以这样做 gt tf get preview 找出自上次同步以来哪些文件已更改 但我想知道这些文件更改属于哪些变更集 类似 tf历史记录 的输出应用于我缺少的更改 有内置的方法可以做到这一点吗 注意 我是一个命令行人员 因
  • Javascript:typeof表示“函数”,但它不能作为函数调用

    这次我对 Javascript 真的很困惑 var x Array prototype concat call typeof x function x Uncaught TypeError x is not a function 这里到底发
  • Altair 限制条数

    假设我有一个像这样的数据框 label counts 4 4 8 5 5 7 6 6 6 7 7 5 0 0 4 1 1 3 2 2 2 3 3 1 我想用 Altair 制作一个条形图 其中条形的高度是计数 标签是标签 如果我想要前 3
  • 如何在redux中设置初始状态

    我试图弄清楚如何在 redux 中设置商店的初始状态 我在用着https github com reactjs redux blob master examples todos with undo reducers index js htt
  • 如何在 CSS 选择器中使用 JSF 生成的带有冒号“:”的 HTML 元素 ID?

    我一直在使用 JSF 处理一个简单的 Java EE 项目
  • ASP.NET MVC 中的异步控制器

    我检查了 MVC 4 0 中的 System Web Mvc AsyncController 它有注释 提供与 ASP NET MVC 3 的向后兼容性 这是否意味着 MVC 4 中有异步控制器的新实现 MVC 4 0 启用异步控制器以便将
  • DDD 聚合和值对象

    我想问一下关于DDD功能的问题 假设我们有两个聚合 每个聚合都包含值对象地址 根据 Eric Evans DDD 我们应该将聚合彼此隔离 因此第一个聚合的聚合根不能有指向 Address 的链接 坦白说 这对我来说似乎没有意义 所以问题是如
  • 在 Android 的 Exoplayer 中使用 flac 扩展

    我正在尝试使用 ExoPlayer 库FLAC 扩展 https github com google ExoPlayer tree release v2 extensions flac在我的安卓应用程序中 我面临以下问题 并非所有文件都可以
  • 将pillow Image对象转换为JpegImageFile对象

    我裁剪了一张 jpeg 图像 但裁剪后的图像类型是
  • 在保存对话框wxpython中实现“另存为”

    我有一个保存例程 应通过以下方式提示用户 如果当前选择的文件名存在 则提示覆盖 如果当前选择的文件名为空 即 则设置一个对话框要求用户插入文件名 如果当前选择的文件名不存在 则保存 我的代码目前如下所示 但我觉得应该有更好的方法来做到这一点
  • TRESTRequest:是否可以在 POST 请求中使用自定义媒体类型?

    例如 我们有一个 API 需要我们自己的供应商特定内容类型application vnd xxxx custom custom data json但查看 REST Client 的源代码 它似乎总是默认为 REST Types 中的 Con
  • 如何使 TypeScript 输出有效的 ES6 模块导入语句?

    所有主流浏览器 http caniuse com feat es6 module支持 ES6 模块已有一段时间了 这些方法与许多服务器端方法的不同之处在于 它们需要指定要从中导入的确切文件 它们无法使用文件发现 这是有道理的 在 Node
  • 从 React Native 中的数组映射函数动态渲染内容

    我正在尝试从数组中获取数据并使用映射函数来呈现内容 看着 this lapsList 以及相关的 lapsList 函数来理解我想要做什么 结果是没有显示任何内容 视图下的视图等 这是我的简化代码 class StopWatch exten
  • 如何检查函数参数的类型?

    我有一个正在构建功能的应用程序 marshal and apply 它调用一些其他函数 或函子 f有一些论据 marshal and apply的工作是根据参数的类型对参数应用一些特殊的编组f的参数 如果其中之一f的参数是特殊类型 mars
  • 动态调整文本区域大小以适应内容

    这是我使用 netbeans 放入程序中的文本区域 第一张图片显示了我运行程序时文本区域的样子 第二张图片显示了我按下按钮后的文本区域 该按钮将大约 50 个 Hello world 字符串添加到文本区域 仅显示前 6 个 我需要动态增加文
  • 为什么位图图像在 Retina 显示屏上看起来很模糊?

    我没有视网膜设备 但我在网上看到了这个讨论 我读过有关为具有 Retina 显示屏的设备提供 2 倍图像尺寸的解决方案 以确保位图不会变得模糊 但是 我不明白这是如何工作的 首先 正如我所读到的 我假设视网膜显示器的像素密度是四倍 二的平方
  • 如何从 SQLAlchemy 引擎实例获取连接 URL?

    我通过生成一个程序来开始一个程序URL http docs sqlalchemy org en rel 1 0 core engines html highlight url sqlalchemy engine url URL对象并将其传递
  • NoMethodError:未定义的方法“调用”

    运行以下测试套件时 require spec helper describe User do before user User name Example User email email protected cdn cgi l email
  • 有没有办法一次重新编码多个变量?

    我有一个学生成绩单分数的数据集 范围从 D 到 A 我想将它们重新编码为 1 12 的范围 即 D 1 D 2 A 11 A 12 现在我正在起诉revalue函数于plyr 我有几列想要重新编码 有没有比运行更短的方法来做到这一点reva