问题标签 [tapply]
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 - R - “线性化” tapply 的结果(到一个单一的向量,按列解包)
在数据框中,我有一个带有一些值的向量,以及每个值所属的类别向量。我想将一个函数应用于“按类别”操作的值,所以我使用了tapply。例如,就我而言,我想重新调整每个类别中的值。
但是,tapply 的结果是重新缩放值的向量列表,但我需要统一(或“线性化”回)这个列表,所以我可以将重新缩放值的列添加到我的数据框中。
我正在寻找一种简单的方法来做到这一点。这是一个示例:
有什么建议么?
谢谢,阿米特
r - 在两列而不是一列上使用 tapply
我想用 R 从包 reldist 中取消 gini() 函数来计算几个图的基尼系数。我有一个数据框,我需要从中使用两列作为 gini 函数的输入。
gini 函数使用第一个元素进行计算(此处为 c13),第二个元素是与 c13 中的每个元素对应的权重(此处为 w)。
所以我需要像这样使用列 c13 和 w :
问题是我想为每个情节(idp)执行此操作。我有 4000 个不同的 idp 值,每个值都有另外两列的几十个值。
我想我可以使用函数tapply() 来做到这一点。但是我不能使用tapply在函数中放置两个列。
如您所知,这是行不通的。所以我希望得到的是这样的数据框:
你知道怎么做吗?也许是 plyr 包?感谢您的帮助!
r - 单个 tapply 或聚合语句中的多个函数
是否可以在单个 tapply 或聚合语句中包含两个函数?
下面我使用两个 tapply 语句和两个聚合语句:一个用于均值,一个用于 SD。
我更愿意合并这些陈述。
我总是可以运行两个单独的语句并合并输出。我只是希望可能有一个更方便的解决方案。
我在这里找到了下面的答案:Apply multiple functions to column using tapply
但是,行或列都没有标记。
我更喜欢 base R 中的解决方案。plyr
包中的解决方案已发布在上面的链接中。如果我可以在上面的输出中添加正确的行和列标题,那将是完美的。
r - 使用因子的水平将 corr 函数应用于矩阵?
我正在尝试使用 corr() 函数来计算加权思考。它的工作方式是第一个参数应该是一个矩阵,其中两列对应于我们希望计算其相关性的两个变量,第二个参数是要应用于每对观察值的权重向量。
这是一个例子。
所以我得到了它,我可以在我的矩阵上使用它,但我想根据一个因子的水平计算不同的相关性。假设我正在使用 tapply() 函数。
所以我的梦想是做这样的事情:
除了您在 tapply() 中知道的第一个元素需要是向量而不是矩阵。
有人会对我有什么解决方案吗?
非常感谢你的帮助。
编辑:我刚刚意识到我在向您展示的数据框部分中缺少加权相关性的权重。所以它会有一些如何根据因子的水平同时采用矩阵和权重。
我希望很清楚。
r - r 中的相对频率(按因子)
我想获得一个跨其他因子变量的变量的前 10 个绝对频率和相对频率的表格。我有一个包含 3 列的数据框:1 列是因子变量,第 2 列是我需要计算的其他变量,3 是作为约束的逻辑变量。(真实数据库有超过 400 万个观测值)
所以我需要在“因子”的每个因子中找到“var”的最高绝对和相对频率,其中“log”==TRUE。
我已经用绝对频率尝试过这个(在真实的数据库中我提取了前 10 名,这里我得到了 2 行):
以下函数有助于查找整个数据库的相对频率,而不是按因素分组:
但是我有相对频率的问题,因为我需要将绝对频率除以“var”的行数除以每个因子,而不是“var”的总行数,其中“log”==T。我不知道如何在 tapply 循环中使用它,这样每个因素的分母都会不同。我还想在 1 个 tapply 循环中使用这两个函数,而不是生成许多表并合并结果。但是不知道如何将这两个功能放在一起。
r - 在 data.frame 中按组求和
我正在尝试获取每个分类变量(在数据框中)的数值变量的总和。我试过使用tapply
,但它并不需要一个整体data.frame
。
这是一个工作示例,其中包含一些如下所示的数据:
使用tapply
,我一次可以得到一个向量:
但我更感兴趣的是得到这样的东西:
任何帮助,将不胜感激。谢谢。
r - Problems with grouping factor, data frame, and tapply
I am very new to R and stats in general and am having trouble getting tapply() to work. I have a data frame with 15 columns and thousands of rows. I made a bunch of logical vectors using something like y1<-((x>0)&(x<=5))
and similar, where x is a column name in the data frame. These logical vectors were then combined and converted into a grouping factor using factor(). Everything looks to be working fine with this.
The problem is that when I try to use tapply() with tapply(dataframe, group, sample, size=20)
where group
is the grouping factor, I get the error: 'arguments must have same length'. When I try length(dataframe)
I get the number of columns in the data frame (only 15), whereas length(group)
returns the number of rows (thousands). Is there an error in the way I'm creating my logical vectors and grouping factor?
Here's the output from dput() as Maxim.K suggested: (sorry, it's not very tidy)
And for group:
15 values from the head (from dput())
... and from the tail
I'm trying to take random samples from all 8 categories using tapply() (of size 20).
[edit] Totally unsurprisingly, the problem was not with the question and requirements but with my comprehension. I misread the question; in fact, I was only supposed to sample from one column, not from the entire data frame.
r - 在函数/循环中使用 tapply 将替换变量名作为数据框列的长度
在 R 中,我有一个包含大约 50 个附加人口统计数据的记录数据集(我称之为星号)(每个人口统计数据可以称为 var1、var2、var3 等)。我使用以下命令将数据集拆分为 ~10% 组:
然后我用
计算十组中每一组的响应率。
我只是想运行一个循环或一个函数来执行这两个命令,这样我就不必手动替换每个变量名。我希望用这个函数/循环将 var1 替换为 var2、var3、var4 等。
我是编写代码的初学者,所以要温柔。对于输出,我只想要一些我可以在需要时使用 text-to-columns 功能轻松复制并粘贴到 Excel 中的内容(所以可能是某种表格)。
r - 两个因素的变量平均值
我有以下数据:
我可以使用以下方法来计算每个物种的样本数量:
我如何通过方法获得每个物种的平均长度?
r - R中的tapply函数
我正在尝试将我的移动平均函数应用于一个变量,如下所示:
data$td
这是一个具有 2 个类别的字符变量。
但这不起作用得到错误:
非常感谢!