根据平均值对 R 数据框中的列重新排序

2024-01-02

我想根据每列的算术平均值对数据框的列重新排序。

For:

S1 S2 S3
1  1  1
2  1  1
3  3  1 

预期输出是:

S3 S2 S1
1  1  1 
1  1  2 
1  3  3 

在上述情况下,平均值为:S1 = 2, S2 = 1.6666 and S3 = 1,反转数据框中的 S1 和 S3 列位置。

此外,我的真实数据也有 NA 值。


Use the order()功能。

示例性数据框:

df <- data.frame(s1=runif(5), s2=runif(5), s3=runif(5))
df[1,2] <- NA # some NAs
df
##           s1        s2         s3
## 1 0.74473576        NA 0.71547379
## 2 0.66997782 0.6474405 0.62320795
## 3 0.05361586 0.5370381 0.03298139
## 4 0.06209263 0.9409920 0.46096984
## 5 0.42432948 0.9983042 0.38503196

计算列平均值,省略 NA:

(mns <- colMeans(df, na.rm=TRUE))
##        s1        s2        s3 
## 0.3909503 0.7809437 0.4435330 

所需的列顺序是:

order(mns)
## [1] 1 3 2

(s1首先,s2最后,并且s3应成为第二列)

现在您可以对列重新排序:

(df <- df[,order(mns)])
##           s1         s3        s2
## 1 0.74473576 0.71547379        NA
## 2 0.66997782 0.62320795 0.6474405
## 3 0.05361586 0.03298139 0.5370381
## 4 0.06209263 0.46096984 0.9409920
## 5 0.42432948 0.38503196 0.9983042
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据平均值对 R 数据框中的列重新排序 的相关文章

随机推荐

  • 将 DATE 参数默认设置为动态计算的值

    我有一个带有两个 DATE 参数的存储过程 我希望它们有一个默认值 但是 我还希望能够根据需要覆盖这些值 我正在使用 SSMS 18 以下是我希望我的代码如何工作 这不是一个工作示例 CREATE PROCEDURE dbo usp stu
  • 如何在Windows上调试“无法添加身份:代理拒绝操作”?

    我正在尝试编写一个 PowerShell 脚本Gitlab CI使用将模仿我的 Linux 构建的 Windows 第一步 我需要添加私钥 以便可以下载所有必需的子模块 mkdir C Users env UserName ssh key
  • Pyinstaller 的综合教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找有关的教程py安装程序 http www pyinstaller org 这会解释类似的事情
  • 如何进行不区分大小写的字符串比较?

    如何在Python中以不区分大小写的方式比较字符串 我想使用简单的 Python 代码封装常规字符串与存储库字符串的比较 我还希望能够使用常规 python 字符串在由字符串散列的字典中查找值 假设 ASCII 字符串 string1 He
  • Laravel Faker 未知格式化程序

    我已经尝试了一切可能的方法 但我无法弄清楚我做错了什么 我正在尝试使用虚拟数据加载数据库 但我不断收到未知的格式化程序 描述 描述是我正在使用的变量之一 下面是我的工厂代码和我的播种机编码器 use Faker Generator as F
  • 我不断收到此错误:“在闭包中隐式使用‘self’;使用‘self’。”使捕获语义明确”

    我不断收到此错误 Implicit use of self in closure use self to make capture semantics explicit 即使我把自我放在代码中 请纠正我 这是我的代码 IBAction fu
  • 引导行和列不起作用

    无论我做什么 内容都不会以列的形式显示 而总是垂直堆叠 你们能仔细检查一下我的代码吗 也许这是我缺少的东西
  • 如何检测单元格值更改datagridview C#

    关于SOF的类似问题似乎没有明确的答案 我有一个DataGridView绑定到一个BindingList
  • 使用 php 进行 Windows 身份验证?

    设想 我的网站上有一个区域需要在异地时保持安全和可访问 我希望用户在网络表单中输入用于登录工作的用户名和密码 该表单将发送用户名和密码以进行身份 验证 如果有效 则用户已登录 我需要使用表单而不是弹出登录框 PHP 是首选 但我很灵活 有什
  • 如何在 ng-grid 中使用 bootstrap datepicker

    我正在尝试使用引导日期选择器 通过角度 ui 引导程序 http angular ui github io bootstrap 内ng grid http angular ui github io ng grid 我正在设置网格 scope
  • List 和 ArrayList 默认容量

    我一直在关注 NETList and 数组列表实现与反射器 http www red gate com products reflector 当看着添加 T项 我遇到了这个 确保产能 this size 1 public void Add
  • 如何使用 Twig (Symfony) 将时间格式设置为 hh:mm

    我从 MS SQL 数据库检索时间字段 例如 10 30 00 hh mm ss 我尝试在树枝模板中渲染它 但我只想显示 10 30 部分 hh mm 我尝试使用 number format 和 date format 来完成此操作 但我似
  • slf4j 石英异常

    我正在尝试在项目的一个简单示例中使用石英 我收到以下异常 我不确定这意味着什么 但是我在 POM 文件中将 slf4j 更新为 1 6 1 即使这样仍然出现 SLF4J slf4j api 1 6 x or later is incompa
  • 如何捕获(并忽略)对错误函数的调用?

    我很惊讶我在任何地方都找不到这个问题的答案 我正在编写一个 Roguelike 游戏 并且正在使用 hackage 的 ncurses 库 它是 ncurses 库的一个非常好的包装器 现在 ncurses 有一个怪癖 如果你尝试写右下角的
  • 用于简单传递性检查的不必要的谓词定义?

    对于给定的事实 trust direct p1 p2 trust direct p1 p3 trust direct p2 p4 trust direct p2 p5 trust direct p5 p6 trust direct p6 p
  • 如何禁用 Mailchimp 双重选择加入 PHP

    我对 Mailshimp 完全陌生 我在网上找不到任何可以禁用双重选择的内容 我不使用任何 Mailchimp API 我只是将 mailchimp 提供的表单放入我的 html 中 有什么想法可以不使用 API 或者如果必须使用 API
  • 我可以使用 EL 从 JSP 访问枚举类的值吗?

    我有一个枚举类USState 我想遍历 JSP 中的状态 是否可以访问列表USState不首先将这样的列表设置为属性 似乎像枚举这样的静态东西应该始终可用 但我不知道如何做到这一点 这就是我正在寻找的 工作除外
  • 读取内存中的整个文件 VS 读取块

    我对 C 和编程还比较陌生 所以请耐心等待 我正在开发一个应用程序 需要读取一些文件并按块处理这些文件 例如 以 48 字节的块处理数据 我想知道什么是更好的 性能方面 在内存中一次读取整个文件然后处理它 或者以块的形式读取文件并直接处理它
  • 实体框架 - 联合导致“无法创建类型的常量值..”

    选择全部Schedulings 是活跃的 我有以下代码 var allSchedulesOnALine CurrentUser Lines SelectMany o gt o Scheduling Where o gt o Active v
  • 根据平均值对 R 数据框中的列重新排序

    我想根据每列的算术平均值对数据框的列重新排序 For S1 S2 S3 1 1 1 2 1 1 3 3 1 预期输出是 S3 S2 S1 1 1 1 1 1 2 1 3 3 在上述情况下 平均值为 S1 2 S2 1 6666 and S3