问题标签 [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 - 打破tapply瘾君子的习惯
我通过玩弄来学习 R,我开始认为我在滥用 tapply 功能。是否有更好的方法来执行以下某些操作?当然,它们有效,但随着它们变得越来越复杂,我想知道我是否会失去更好的选择。我在这里寻找一些批评:
更新:这是一些示例数据...
更新数据转储:
r - 分组函数(tapply、by、aggregate)和 *apply 系列
每当我想在 R 中做一些“map”py 的事情时,我通常会尝试使用apply
家族中的一个函数。
但是,我从来没有完全理解它们之间的区别—— { sapply
, lapply
, etc.} 如何将函数应用于输入/分组输入,输出看起来像什么,甚至输入可以是什么——所以我经常只是通过它们,直到我得到我想要的。
有人可以解释如何在什么时候使用哪一个吗?
我目前(可能不正确/不完整)的理解是......
sapply(vec, f)
: 输入是一个向量。output 是一个向量/矩阵,其中 elementi
是,如果有一个多元素输出,则f(vec[i])
给你一个矩阵f
lapply(vec, f)
: 和 一样sapply
,但是输出是一个列表?apply(matrix, 1/2, f)
: 输入是一个矩阵。输出是一个向量,其中元素i
是 f(矩阵的行/列 i)tapply(vector, grouping, f)
:输出是矩阵/数组,其中矩阵/数组中的元素是向量f
分组的值,并被推送到行/列名称g
g
by(dataframe, grouping, f)
: 让我们g
成为一个分组。适用f
于组/数据框的每一列。漂亮地打印每列的分组和值f
。aggregate(matrix, grouping, f)
: 类似于by
,但不是漂亮地打印输出,而是聚合将所有内容粘贴到数据框中。
附带问题:我还没有学习 plyr 或 reshape - 会plyr
或reshape
完全取代所有这些?
r - 在tapply中改变参数?
我有几个组,比如说 A、B、C,我想要cut
基于这些组的另一个变量,即每个组对同一个变量都有特定的中断。
如果我必须计算组的平均值,我会这样使用tapply
:
不幸的是,我不知道如何cut
通过更改不同组的 break=c(...) 参数来解决此问题。
有什么建议么?我想这样做,tapply
但任何其他解决方案,但定制功能也适用。
编辑:一些小例子:
等等...
r - 类似问题,但需要数据帧输出 - R
这是我的第一篇文章,所以希望我能解释一下我需要做什么。我对 R 还是很陌生,我可能已经阅读过回答这个问题的帖子,但我终其一生都无法理解它们的含义。因此,如果这已经得到回答,请提前道歉。
我有一个非常大的来自无线电项圈的 GPS 位置数据集,并且每天的位置数量不一致。我想浏览数据集并根据 GPS 信号的准确度为每天选择一个数据点。
所以它基本上看起来像这样。
我想提取每天最准确的点(最低准确度度量),同时保留其余的相关数据。
目前我一直在使用tapply功能
使用这种方法,我可以成功检索最小值,每天一个,但是我无法获取相关的坐标和时间以及所有其他重要信息,并且由于数据集接近 300 000 行,我真的可以不要用手做。
所以本质上,我需要得到与 tapply 相同的结果,但是我需要找到该点的整行而不是单个点。
提前感谢任何可以伸出援助之手的人。如果您需要更多信息,请告诉我,我会尽力为您提供。
r - 将 tapply 结果恢复到 R 中的原始数据帧中
我有一个数据框,其中包含公司在不同年份对不同国家的年度出口。我的问题是我需要创建一个变量,表示每年每个国家有多少家公司。我可以用“tapply”命令完美地做到这一点,比如
它工作得很好。我的问题是现任者有长度length(destination-year)
,我需要它有长度length(id)
——每年有很多公司为每个目的地提供服务——以便在随后的回归中使用它(当然,以与年份和目的地相匹配的方式)。“for”循环可以做到这一点,但由于数据库非常庞大,因此非常耗时。
有什么建议么?
r - 如何在R中拆分不相等的列
我有一个应该包含 14 列的数据集,但是当我将它读入 R 时,它显示为两列,后面的列读为一列,并且都用“。”分隔。
我阅读使用:
dat <- read.table ("/data/GER.female.RAWMACH", header = F, sep = "\t")
下面我提供了输出:
头(数据)
V1
特质
案例
案例
案例
案例
案例
案例
V2 MARKER........等位基因..FREQ1..RSQR...EFFECT1..OR......STDERR..WALDCHISQ.PVALUE......LRCHISQ.LRPVAL.NCASES .NCONTROLS
rs7 TA .9104 .0001 -3.944 0.019 19.634 0.0403 0.8408 0.0403 0.8409 260 446
rs6 交流 .9114 .0002 -2.552 0.078 14.349 0.0316 0.8589 0.0316 0.8589 260 446
rs9 CT .8444 .0001 2.772 15.985 15.076 0.0338 0.8541 0.0338 0.8542 260 446
rs5 GA .9164 .0001 -3.683 0.025 18.039 0.0417 0.8382 0.0417 0.8383 260 446
rs2 TC .5168 .0001 -2.466 0.085 10.811 0.0520 0.8195 0.0520 0.8196 260 446
rs1 TG .8229 .0002 -1.727 0.178 12.241 0.0199 0.8878 0.0199 0.8878 260 446
我尝试了一些事情(重写表格,colsplit)但没有成功。我错过了什么?
感谢您提出的任何建议!
r - 如何将 tapply 与包含复制、样本和求和的函数结合使用?
我有一个 csv 文件,其中包含来自不同学校的学生及其体重的详细信息
例如
我想反复对 n 个权重进行替换采样,对我的 n 个权重求和,然后计算出结果分布的第 95 个分位数。我想为 200 所学校中的每一所学校的学生执行此操作,从 1 到 25 改变 n 以最终得到以下输出:
我正在使用 tapply() 为所有 200 所学校找到 n=1 的答案
我正在使用 replilcate()、sum() 和 sample() 来模拟将两个权重加在一起的 1000 种组合。
我无法将上述两者结合起来,以便在 tapply 函数中复制 sum 和 sample。
请指教。
我是 R 的初学者。
r - 如何在for循环中使用tapply()并在R中打印输出?
我正在使用 tapply() 将函数应用于我的数据
我想在 for 循环中使用它并打印输出。我尝试了以下方法并收到错误消息:Error: unexpected symbol in "for(n in 12:13) (t=tapply(ow,sc,ndropfunction,n,p=0.95) output
r - 如何在 R 中转换表格格式
具体来说,
我使用了以下设置:
newdata <- tapply(mydata(#), list(mydata(X), mydata(Y)), sum)
我目前有一张表,目前列出如下:
X= 州,Y= 州内县,#= 某事物的数字总数
- __ Y1 Y2 Y3 Yn
- X1 ## ## ## ##
- X2 ## ## ## ##
- X3 ## ## ## ##
- Xn ## ## ## ##
我需要的是一张如下表:
- X1 Y1 ##
- X1 Y2 ##
- X1 Y3 ##
- X1 Yn ##
- X2 Y1 ##
- X2 Y2 ##
- X2 Y3 ##
- X2 Yn ##
- Xn Y1 ##
- Xn Y2 ##
- Xn Y3 ##
- Xn Yn ##
r - 数据框中分组数据中每个观测值的标准误差
我有一个数据框,我想在其中计算按三列中的因子分组的观察值的标准误差。使用 tapply 计算组平均值的标准偏差和标准误差:
我之前已经计算了单个观察值的标准偏差(保存在 colSD 列中),并想计算相应的标准误差。使用下面的函数,我可以获得标准错误:
但是,结果以数组的形式给出,每组的 n 个观察值作为每个位置的字符串(我认为)。任何想法如何通过更改函数,使用另一个函数或将数组转换为每个观察值的标准误差都有自己位置的向量来进一步移动?
一个小样本(如果我通过 dput(df),你会更容易使用吗?):
我想计算每个观察值的标准误差,例如 等0.080/sqrt(2)
,0.093/sqrt(2)
并将结果作为附加列添加到数据框中: