按向量、行而不是列划分数据框[重复]

2023-12-04

我有这个数据框和向量,我想用它来划分行:

div <- c(10,100,1000)
df <- as.data.frame(matrix(rep(1,9),nrow=3))
df <- cbind(type = as.factor(c("A","B","C")),df)
> df
  type V1 V2 V3
1    A  1  1  1
2    B  1  1  1
3    C  1  1  1

我想要数据框形式的答案,并且因素保持原样。 当它与向量相除时,我得到“错误”的答案:

df1 <- cbind(df[,1], df[,-1]/div)
> df1
  df[, 1]    V1    V2    V3
1       A 0.100 0.100 0.100
2       B 0.010 0.010 0.010
3       C 0.001 0.001 0.001

我想要每一行除以向量,而不是每一列。

我的解决方法是这样的:

divfun <- function(x){
  x / div
}

df2 <- cbind(df[,1], t(apply(df[,-1], 1, divfun)))
> df2
        V1   V2    V3
[1,] 1 0.1 0.01 0.001
[2,] 2 0.1 0.01 0.001
[3,] 3 0.1 0.01 0.001

请注意,这些因子现在已丢失。

所以这里有两个问题:

  1. 有没有更简单的方法来做到这一点,而不需要为其创建新功能?
  2. 假设没有更简单的方法,我的因素 A、B 和 C 发生了什么?我猜测这与强制矩阵有关(因为t())?

您正在寻找的功能是sweep():

sweep(df[, -1], MARGIN = 2, div, FUN = "/")

> sweep(df[, -1], MARGIN = 2, div, FUN = "/")
   V1   V2    V3
1 0.1 0.01 0.001
2 0.1 0.01 0.001
3 0.1 0.01 0.001

Hence

cbind(type = df[,1], sweep(df[, -1], 2, div, FUN = "/"))

> cbind(type = df[,1], sweep(df[, -1], 2, div, FUN = "/"))
  type  V1   V2    V3
1    A 0.1 0.01 0.001
2    B 0.1 0.01 0.001
3    C 0.1 0.01 0.001

为您提供所需的输出。

请注意,这里的论证MARGIN不引用行(1) 或列 (2)就像它在apply(). In sweep()它指的是对应于数组的边距STATS,您想要清除的向量(在本例中为除以)。换句话说,第一个元素STATS (div在你的情况下)是从第 1 列中扫出的值,即第二个元素STATS是要从第 2 列中清除的值,依此类推。

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

按向量、行而不是列划分数据框[重复] 的相关文章

  • 将强化的 data.frame 转换回 sf 对象

    五十斯塔特包提供了一张很棒的美国地图 其中有夏威夷和阿拉斯加 如下图所示 对象五十 州已经得到加强 可以与 ggplot2 一起使用 但是 我想使用 geom sf 将其绘制为 sf 对象 作为一个更普遍的问题 将强化的 data fram
  • 保存/加载 data.table 的最快方法

    我想做的实际上是使用最快的可用方法来存储data table以便进一步处理 大致如下 从 CSV RDS 读取原始数据 将其转换为data table 将其保存为针对重新读取而优化的格式 RDS 似乎不适用于data table 是对的吗
  • 您使用 Attach() 或按名称或切片调用变量吗?

    许多介绍 R 的书籍和指南都是从附加一个 R 语言的实践开始的 data frame这样您就可以通过名称调用变量 我一直发现用以下方式调用变量是有利的 符号或方括号切片 2 这样我就可以使用多个data frames 而不混淆它们和 或使用
  • 在 R 中使用两个 for 循环创建矩阵/数据框

    这是我在 SO 上的第一篇文章 所以请友善 我的问题与这个问题隐约相关 R中的双for循环创建矩阵 https stackoverflow com questions 44376020 double for loop in r creati
  • ggplot2 的组合图(不在单个图中),使用 par() 或 layout() 函数? [复制]

    这个问题在这里已经有答案了 我一直在考虑使用 par 或 layout 函数来组合 ggplots 可以使用这些功能吗 假设我想绘制 ggplot 散点图和 ggplot 直方图 我想将这两个地块合并起来 而不是在一个地块中 是否适用 我在
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • 抑制 r markdown 中的控制台输出,但保留绘图

    嗨 我有以下降价块 r echo FALSE warning FALSE message FALSE error FALSE lapply obj function x plot x main some plot box axis 1 at
  • 不同的分位数:箱线图与小提琴图

    require ggplot2 require cowplot d iris ggplot2 ggplot d aes factor 0 Sepal Length geom violin fill black alpha 0 2 draw
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 如何编写一个也接受字符输入的 NES 函数?

    我正在开发一个将字符串作为函数参数的 R 包 现在我想使用非标准评估来允许非字符串输入 另外 为了保持向后兼容性 我想保留函数接受字符串的可能性 哈德利给出了example https cran r project org web pack
  • R 中的 For 循环分配给数据框

    运行 for 循环后 我在分配给数据帧时遇到问题 当我使用 print 时 它给出了我的价值 有什么解释吗 salesdate lt rep seq from as Date 2013 12 19 to as Date 2013 12 23
  • 没有垂直线的直方图

    当我创建直方图时 它看起来很像这样 set seed 1 x lt 1 100 y lt x rnorm 50 y round y hist y Is there a way to make a histogram look a bit l
  • 如何在闪亮的应用程序中显示矩阵,并用条件指定颜色?

    我有一个具有正值和负值的矩阵 M 我正在尝试使用 DT 包在闪亮的应用程序中显示为表格 我想用不同的颜色显示矩阵 红色的正数和负数 例如 到目前为止 我只能以一对一的方式添加颜色 但我想以这种方式添加颜色 如果matrix values g
  • 如何重试错误语句?

    如果某个语句出错 我如何简单地告诉 R 重试该语句几次 例如 我希望做类似的事情 tryCatch dbGetQuery Query database error function e if is locking error e If da
  • R 中整数向量的大小

    我原以为 R 有一个用于存储对象的标准开销 看起来是 24 字节 至少对于整数向量而言 但一个简单的测试表明它比我意识到的要复杂 例如 采用长度为 100 的整数向量 使用随机采样 希望避免任何可能存在的偷偷摸摸的序列压缩技巧 https
  • 如何连接 R 列表中的多个 .wav 文件?

    我有一个 wav 文件列表my list library seewave library tuneR data tico audio lt tico freq lt 22050 breaks lt c 0 0 2 0 4 0 6 0 8 i
  • 是否可以在 R 中创建自定义 pch 形状?

    R 中的许多绘图函数都使用图形参数pch指定数据点的形状 根据R 文档 https www rdocumentation org packages graphics versions 3 6 2 topics points 有 26 个矢量
  • 根据第二个数据帧中的匹配创建新列

    如果有两个数据框 top3df http dpaste com 1709875 and qw qw lt structure list id structure 1 25 Label c w01 w02 w03 w04 w05 w06 w0
  • ggplot2:图例中的斜体

    我正在尝试编辑图例中的标签 以便第一个标签 WT 为纯文本 而后续 7 个标签为斜体 我一直在使用element text face c plain rep italic 7 但这导致没有任何标签被转换为斜体 我有点困惑为什么它不起作用 因
  • 如何将带有几行代码的字符数组转换为 data.frame?

    我有以下数组 my list lt c Jan 01 Dec 31 00 00 24 00 Jan 01 Jun 30 12 00 18 00 Jul 06 Dec 31 09 00 19 00 导致以下结果的最短代码是什么 x1 x2 x

随机推荐

  • IE8 中 AJAX 的意外缓存结果

    我在 Internet Explorer 缓存 JQuery Ajax 请求结果时遇到严重问题 我的网页上有标题 每次用户导航到新页面时该标题都会更新 页面加载后我会这样做 get game getpuzzleinfo null funct
  • 从 ADUser DistinguishedName 获取 CN 值

    我有一个 PS 脚本 用于检查 Active Directory 中某些自定义用户的属性 属性之一是 经理 data Get ADUser user Properties Select Object DisplayName LockedOu
  • collections.sort方法仅用于List类型的集合吗?

    朋友们 我是 Java Collection 的新手 我想问一下Collections sort 方法仅用于 由集合使用List类型 我无法对以下代码进行排序 Collection collection new HashSet collec
  • Cosmos DB 查询 - 当某个属性不存在于所有文档中时使用 ORDER BY

    我们在为 Cosmos Document DB 编写查询时遇到问题 我们想要创建一个新的文档属性并在 ORDER BY 子句中使用它 例如 如果我们有一组文档 例如 Name Geoff Company Acme Name Bob Comp
  • 为什么字体较小时高度会增加?

    我有一个具有一定行高的块 我在其中插入内容 before伪元素 block before content text here 这效果很好 但是 如果我也给内容设置较小的字体大小 block before font size 6em cont
  • 为什么main在没有变量的情况下初始化堆栈帧

    为什么这段代码 include stdio h int main void puts Hello World 决定初始化堆栈帧 这是汇编代码 LC0 string Hello World main push rbp mov rbp rsp
  • core-plot 从轴标签中删除小数点

    有人可以告诉我如何从轴标签中删除小数点吗 我希望只显示 10 个 而不是 10 0 CPTXYAxis x axisSet xAxis NSNumberFormatter Xformatter NSNumberFormatter alloc
  • 单个列表到字典

    我有这个清单 single key1 value1 key2 value2 key3 value3 由此创建字典的最佳方法是什么 Thanks gt gt gt single key1 value1 key2 value2 key3 val
  • Android-列表视图、服务媒体播放器和布尔标志

    我目前有一个listview当您单击某个项目时 它会运行service with a mediaplayer 如果我点击另一个项目listview the service正在运行的应该停止并运行新的service 我正在使用一个boolea
  • set -e 在 bash 脚本中意味着什么?

    我正在研究这个内容preinst在从 Debian 存档 deb 文件中解压该包之前脚本执行的文件 该脚本有以下代码 bin bash set e Automatically added by dh installinit if 1 ins
  • 将 Unicode 转换为 python [重复]

    这个问题在这里已经有答案了 可能的重复 将 Unicode 转换为 UTF 8 Python 我是一个非常新的 Python 程序员 正在编写我的第一个脚本 该脚本从 plist 字符串中提取文本 然后对其执行一些操作 然后将其打包为 HT
  • 在树视图中搜索并突出显示/选择包含所搜索项目的行

    我正在使用 tkinter 和 treeview 为患者列表制作一个简单的 GUI 其中包含患者姓名和就诊日期 我有一个条目 用户应在其中输入患者姓名 想法是患者姓名是否位于列表 包含要突出显示 选定 的患者姓名的行 或多行 或者另一个选项
  • Mac OS X 10.6.8 上的 gcc-4.2.1 中不存在 strnlen - 如何定义它?

    我正在构建最新的跨平台 OS X 版本dcraw c我在 OS X 10 6 8 上执行此操作是为了具有 PPC 兼容性 现在我的问题是 strnlen 似乎在最新版本的程序中使用 但它在 10 6 8 上不存在 并且 gcc 给我这样的消
  • 模板类和类模板有什么区别?

    模板类和类模板有什么区别 这是许多人 包括维基百科上的通用编程页面 一些 C 教程以及此页面上的其他答案 的常见困惑点 就 C 而言 不存在 模板类 这样的东西 只有 类模板 该短语的解读方式是 类的模板 而不是 函数模板 函数模板 是 函
  • 具有相似参数的路由上的路由参数模式

    我有一些使用几个 UUID 作为参数的路由 Route get foo uuid1 uuid2 Controller action 我希望能够在将控制权传递给操作之前验证这些参数的格式是否正确 Route pattern uuid1 a f
  • 我如何在 React router v6 中用上下文包装 2 个路由

    我如何在 React Router v6 的上下文中包装 2 个路由 只有这两个应该暴露给该上下文 并且我无法单独设置上下文 因为上下文运行一些代码 useEffect 如果我这样做 它会在每次切换路由时触发 我希望它在加载两条路线之前触发
  • VB.NET - 背景淡出就像 UAC 消息中一样?

    Hello 当 的时候UAC在 Windows Vista 7 或 8 中显示消息时 后台将无法访问 直到用户从消息对话框中进行选择 是否可以使用 VB NET 程序来完成此操作 以使后台无法访问 直到用户从表单中进行选择 我想要的是当 U
  • 替换 pandas 多索引中的值

    我有一个具有多索引的数据框 当满足第一个索引的某些条件时 我想更改第二个索引的值 我在这里发现了一个类似 但不同 的问题 替换 MultiIndex 中的值 pandas 这并没有回答我的观点 因为那是关于更改单行 并且解决方案也传递了第一
  • Sklearn 错误,数组有 4 个暗淡。估计器 <=2

    我一直在尝试通过 panda 从雅虎财经导入数据 然后通过 as matrix 将其转换为数组 然后当我将数据输入分类器进行训练时 它给了我一个错误 ValueError Found array with dim 4 Estimator e
  • 按向量、行而不是列划分数据框[重复]

    这个问题在这里已经有答案了 我有这个数据框和向量 我想用它来划分行 div lt c 10 100 1000 df lt as data frame matrix rep 1 9 nrow 3 df lt cbind type as fac