我想在向量和数据帧之间使用比较运算符.例如,我有一个向量vector_test在R中定义为

vector_test = c(1, 2, 3)

并且对应的数据帧A_test被定义为

A_test = data.frame(
               x1 = c(1, 2, 3, 4, 5),
               x2 = c(2, 3, 4, 5, 6),
               x3 = c(3, 4, 5, 6, 7)
)

我想用vector_test来区分A_test中的哪些元素大于或等于vector_test中的元素.我希望输出结果类似于

A_test >= vector_test

> TRUE  TRUE        .
  TRUE. TRUE.       .
  TRUE. TRUE.       .
  TRUE.  ...        .
  TRUE.  ...        TRUE


但我得到的却是

enter image description here

我知道这听起来很愚蠢,但我不知道(A)我做错了什么,(B)R在做什么比较.

推荐答案

似乎正在发生的情况是,数据帧被强制为一个矩阵,然后该矩阵被强制为用于比较的向量,并且结果被转换回矩阵.

A_test的矢量版本是

c(1, 2, 3, 4, 5, 
  2, 3, 4, 5, 6,
  3, 4, 5, 6, 7)

当您将其与长度3向量进行比较时,向量首先循环到长度15,从而得到以下结果:

c(1, 2, 3, 1, 2,
  3, 1, 2, 3, 1,
  2, 3, 1, 2, 3)

然后将元素与数据帧中的向量进行比较.A_test >= vector_test个中唯一的错误出现在第6个条目中.当转换回矩阵时,如您所见,这是第二列中的第一个条目.

R相关问答推荐

rvest函数read_html_live()不允许html_elements()正确读取

图片中令人惊讶的行为

从载体创建 pyramid

卸载安装了BRM的模型发出的警告

在特定Quarto(reveal.js)幻灯片上隐藏徽标

二维样条,严格以一个参数递增

使用外部文件分配变量名及其值

如何得到每四个元素向量R?

如何从R ggplot图片中获取SVG字符串?

如何读取CSV的特定列时,给定标题作为向量

根据列A中的差异变异列,其中行由列B中的相对值标识

在GG图中绘制射线的自动程序

如何使用同比折线图中的个别日

减go R中列表的所有唯一元素对

在点图上绘制置信度或预测区间ggplot2

将多个列合并为一个列的有效方法是什么?

无法将条件case_when()应用于使用!!创建的新变量Mutations

如何显示准确的p值而不是<;0.001*?

如何移动点以使它们的打印不重叠

为什么将负值向量提升到分数次方会得到NaN