问题标签 [r-faq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在不更改值顺序的情况下重新排序因子的级别
我有一些数值变量和一些分类factor
变量的数据框。这些因素的水平顺序不是我想要的。
如果我更改级别的顺序,字母不再带有相应的数字(从现在开始,我的数据完全是胡说八道)。
我只是想更改级别顺序,因此在绘图时,条形图以所需的顺序显示 - 这可能与默认的字母顺序不同。
r - 将数据框转换为向量(按行)
我有一个带有像这样的数字条目的数据框
如何获得以下向量?
我能够使用以下方法获得它,但我想应该有一种更优雅的方式
r - 从 R 函数中生成多个图形
我想使用 ggplot 图形从 R 中的一个函数中生成几个图形窗口...
但是, dev.new() 和 grid.newpage() 似乎都没有刷新前面的情节。
我知道,在 R 中,函数通常只产生他们评估的最后一个东西,但我想更好地理解这个过程并了解任何可能的解决方法。
想法?
r - 如何找到统计模式?
在 R 中,mean()
并且median()
是执行您所期望的标准功能。 mode()
告诉你对象的内部存储模式,而不是在其参数中出现最多的值。但是是否有一个标准库函数可以实现向量(或列表)的统计模式?
r - 在 R 中的同一图中绘制两个图
我想在同一个图中绘制 y1 和 y2 。
但是当我这样做时,它们并没有一起绘制在同一个情节中。
在 Matlab 中可以做到hold on
,但有人知道如何在 R 中做到这一点吗?
r - 您如何在 R 中使用“<<-”(范围分配)?
我刚刚读完R intro 中关于范围界定的<<-
内容,并且对这项任务非常好奇。
该手册显示了一个(非常有趣的)示例<<-
,我觉得我理解了。我仍然缺少的是何时有用的上下文。
所以我很想从你那里读到一些例子(或例子的链接),关于什么时候使用<<-
可以是有趣/有用的。使用它可能有什么危险(看起来很容易忘记),以及您可能想要分享的任何提示。
r - 将 data.frame 列名传递给函数
我正在尝试编写一个函数来接受一个 data.frame ( x
) 和一个column
来自它的。该函数对 x 执行一些计算,然后返回另一个 data.frame。我坚持将列名传递给函数的最佳实践方法。
以下两个最小示例fun1
产生fun2
了所需的结果,能够对 执行操作x$column
,max()
以示例为例。然而,两者都依赖于看似(至少对我而言)不优雅
- 打电话给
substitute()
并且可能eval()
- 需要将列名作为字符向量传递。
例如,我希望能够将该函数称为fun(df, B)
。我考虑过但未尝试过的其他选项:
column
作为列号的整数传递。我认为这可以避免substitute()
. 理想情况下,该函数可以接受任何一个。with(x, get(column))
,但是,即使它有效,我认为这仍然需要substitute
- 使用
formula()
andmatch.call()
,这两个我都没有太多经验。
子问题:是do.call()
首选eval()
吗?
r - 根据范围在R中创建分类变量
我有一个包含整数列的数据框,我想将其用作创建新分类变量的参考。我想将变量分成三组并自己设置范围(即0-5、6-10等)。我试过cut
了,但这会根据正态分布将变量分组,并且我的数据是正确的。我也尝试使用 if/then 语句,但这会输出一个真/假值,我想保留我的原始变量。我确信有一种简单的方法可以做到这一点,但我似乎无法弄清楚。关于快速做到这一点的简单方法有什么建议吗?
我有这样的想法:
r - 如何动态命名变量?
是否可以即时创建新的变量名?
我想将列表中的数据帧读取到末尾带有数字的新变量中。orca1、orca2、orca3 之类的东西……
如果我尝试类似
我收到这个错误
还有其他方法吗?
r - R中的数字比较难度
我正在尝试将 R 中的两个数字作为 if 语句条件的一部分进行比较:
(a-b) >= 0.5
在这个特定的例子中,a = 0.58 和 b = 0.08...然而(a-b) >= 0.5
是错误的。我知道使用==
精确数字比较的危险,这似乎是相关的:
(a - b) == 0.5)
是假的,而
all.equal((a - b), 0.5)
是真的。
我能想到的唯一解决方案是有两个条件:(a-b) > 0.5 | all.equal((a-b), 0.5)
. 这行得通,但这真的是唯一的解决方案吗?我应该永远发誓离开=
比较运算符的家庭吗?
为清楚起见进行编辑:我知道这是一个浮点问题。更根本的是,我要问的是:我应该怎么做?什么是处理 R 中大于或等于比较的明智方法,因为>=
不能真正信任?