循环 R 列

2024-01-12

我有一个data.frame in R它由许多带有数值的列组成。 像这样:

   A       B      C
0.6057  0.1644  6.93
0.5723  0.117   6.59
0.5614  0.1552  7.02
0.4102  0.1059  5.24
0.4945  0.0857  6.64
0.5157  0.0747  7.06
0.7785  0.1394  5.21
0.5492  0.1557  6.06
0.5411  0.1884  5.68
0.6622  0.148   6.1

对于每一列,我想创建一个包含四分位数值的新列。使用以下公式一次对一列进行操作没有问题:

tableOne <- within(data, quartile <-
                    as.integer(cut(A, quantile(A, probs=0:5/5,na.rm=T))))

但正如我所拥有的100 columns使用不同的名称,我想分别循环每一列。

我尝试了一个循环但没有成功:

for(i in names(data)){
  tableOne <- within(data, quarti <- as.integer(cut(i, quantile(i, probs=0:5/5,na.rm=T))))
}

我收到以下错误:

Error in cut.default(i, quantile(i, probs = 0:5/5, na.rm = T)) : 
  'x' must be numeric

我也尝试过应用功能:

df.two <- lapply(df, function(x) within(data, quartile <- as.integer(cut(x, quantile(x, probs=0:5/5,na.rm=T)))))

没有成功:

Error during wrapup: argument "obj" is missing, with no default
Error during wrapup: target context is not on the stack

关于如何在所有列上迭代我的函数并在同一 data.frame 中获取所有结果有什么建议吗?

多谢


请参阅答案末尾以获得更好的方法,这是为了轻松理解步骤。

我不确定你愿意做什么,但也许是这样:

df2<- as.data.frame( lapply( df, function(x){
  as.integer( cut(x, quantile(x, probs=(0:5)/5, na.rm=T)))
}))
colnames(df2) <- paste0("quartile_",colnames(df))
df3 <- cbind(df,df2)

这使:

        A      B    C quartile_A quartile_B quartile_C
1  0.6057 0.1644 6.93          4          5          4
2  0.5723 0.1170 6.59          4          2          3
3  0.5614 0.1552 7.02          3          4          5
4  0.4102 0.1059 5.24         NA          2          1
5  0.4945 0.0857 6.64          1          1          4
6  0.5157 0.0747 7.06          2         NA          5
7  0.7785 0.1394 5.21          5          3         NA
8  0.5492 0.1557 6.06          3          4          2
9  0.5411 0.1884 5.68          2          5          2
10 0.6622 0.1480 6.10          5          3          3

使用数据:

> dput(df)
structure(list(A = c(0.6057, 0.5723, 0.5614, 0.4102, 0.4945, 
0.5157, 0.7785, 0.5492, 0.5411, 0.6622), B = c(0.1644, 0.117, 
0.1552, 0.1059, 0.0857, 0.0747, 0.1394, 0.1557, 0.1884, 0.148
), C = c(6.93, 6.59, 7.02, 5.24, 6.64, 7.06, 5.21, 6.06, 5.68, 
6.1)), .Names = c("A", "B", "C"), class = "data.frame", row.names = c(NA, 
-10L))

根据下面的 @DavidArenburg 评论,实现相同结果的更好方法是:

df[paste0("quartile_",colnames(df))] <- lapply(df, function(x) as.integer(cut(x, quantile(x, probs=(0:5)/5, na.rm = TRUE))))

这可以避免创建新的数据框并在最后复制它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环 R 列 的相关文章

随机推荐

  • 不使用 sort 方法按字母顺序对数组进行排序

    我一直在学习 Chris Pine 的 Ruby 教程 目前正在研究一种无需使用即可对名称数组进行排序的方法sort 我的代码如下 它工作完美 但比我想象的更进一步 puts Please enter some names name get
  • 数组对象是否显式包含索引?

    从学习 Java 的第一天起 各种网站和许多老师就告诉我 数组是连续的内存位置 可以存储指定数量的相同类型的数据 由于数组是一个对象 并且对象引用存储在堆栈中 而实际对象位于堆中 因此对象引用指向实际对象 但是当我遇到如何在内存中创建数组的
  • 如何使用 AWS SAM 启用 CORS

    我正在尝试在我的 AWS SAM 应用程序中启用 CORS 这是我的片段template yaml Globals Api Cors AllowMethods AllowHeaders AllowOrigin Resources MyApi
  • Firebase 动态链接生成器中的 DFL 参数

    我需要使用 Android 上的 Dynamic Link Builder API 以编程方式构建动态链接 https firebase google com docs dynamic links android create https
  • 即使以管理员身份登录也无法删除文件[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 请有人告诉我我做错了什么 我正在尝试通过命令行删除隐藏文件夹 我以管理员身份运行命令行 但仍然收到消息访问权限不足 这是我的命令行的屏幕截
  • 是否可以以编程方式配对 Android 蓝牙设备?

    目前我正在使用 backport android bluetooth2 jar 文件与 Android 1 5 进行蓝牙编程 每当设备配对失败时 它都会填充 passKey 的警报对话框 如果我给出 passkey 那么在我的日志中我会收到
  • Android 调试监视器层次结构视图未显示

    我正在尝试在 ADM 中连接我的应用程序 但不幸的是层次结构视图未显示 我应该如何将我的应用程序连接到 ADM 工具 设备 Nexus 4 操作系统 4 3 3 Error 2014 02 06 13 00 14 hierarchyview
  • Visual C++ 和 *nix 环境下的编译差异

    在 nix 环境和 MS Visual C 环境中编译项目有区别吗 例如 Visual C 中有一个 stdafx h 文件 我问的原因是我提交了一段用g 编译的代码 重构mycode com http refactormycode com
  • Mac 上 -dpkg 的替代品是什么?

    我正在尝试使用 dpkg 命令 但在 Mac OS X 中它似乎对我不起作用 dpkg scanpackages m dev null gt Packages bash dpkg command not found dns Administ
  • Java:将格式化的xml文件转换为一行字符串

    我有一个格式化的 XML 文件 我想将其转换为一行字符串 我该怎么做 示例 XML
  • Delphi 'AND' 评估有 2 个条件

    我不得不选择 Delphi 来完成我最近正在做的一项合同工作 我希望有人澄清的一件事是条件语句中逻辑的执行 例如if 我有 C C 和这些语言的背景 一旦if已知语句失败 其余逻辑不会执行 例如 if somefunc FALSE anot
  • 如何检测设备的移动?

    我想检测像 Moo Box 这样的运动 我反转手机 当我将其转回时 它会触发一个动作 对于安卓 什么是最好的方法 可以自定义事件监听器 你看过吗传感器管理器 http developer android com reference andr
  • 如何在 R 中使用 as.Date() 格式化我的日期?

    我有一个如下所示的数据集 Date AE AA AEF Percent 1 1 2012 1211 1000 3556 0 03 1 2 2012 100 2000 3221 0 43 1 3 2012 3423 10000 2343 0
  • asp mvc 默认应用程序生成删除空格

    因此 当生成一个 mvc 项目时 它具有默认的母版页和部分视图 例如注册和登录视图 问题是 生成的母版页在页面左侧和右侧具有默认的空白 我的问题是 边距空间代码写在哪里以及如何删除它 虽然看起来很简单 但我似乎找不到它 Site css 保
  • 类型推断在具有静态成员约束的泛型类型上失败

    我定义了以下类型 从代码简化 type Polynomial lt a when a static member public Zero a and a static member a a gt a and a static member
  • MATLAB 搜索元胞数组中的字符串子集

    我试图在 MATLAB 的元胞数组中查找子字符串出现的位置 下面的代码可以工作 但是相当难看 在我看来应该有一个更简单的解决方案 cellArray these are some nicewords and some morewords w
  • 无可用来源

    我不确定发生了什么或者我是否做了什么 现在 每当我尝试调试时 它都会说所有 BCL 内容都没有可用的源代码 例如 在 debug print 上我收到该消息 定位源 f dd ndp fx src CompMod System Diagno
  • MFCC Python:librosa、python_speech_features、tensorflow.signal 的结果完全不同

    我正在尝试从音频 wav 文件 中提取 MFCC 特征 并且我已经尝试过python speech features and librosa但他们给出了完全不同的结果 audio sr librosa load file sr None l
  • amCharts v5 模板适配器示例在作为 TypeScript 而不是 JavaScript 运行时抛出错误

    我正在尝试根据值更改条形颜色 即在 JS 中很简单 https codepen io team amcharts pen KKmbKBg editors 1111 但是当我在 TSX 文件中实现代码时 它给了我一个错误 正如你所看到的 VS
  • 循环 R 列

    我有一个data frame in R它由许多带有数值的列组成 像这样 A B C 0 6057 0 1644 6 93 0 5723 0 117 6 59 0 5614 0 1552 7 02 0 4102 0 1059 5 24 0 4