r - 如何使用公式中其他列的单个值计算新列?
问题描述
我有一个数据框,其中有一列X,如下所示:
X
1 8
2 4
3 2
4 5
5 3
6 2
7 1
8 5
使用此列中的值,我想创建一个新列Z,它使用以下公式计算新值: 例如,要计算 Z1,计算如下所示: Z1 的值为 0.005。
同样,Z2 的值为 -0.229,Z3 的值为 0.107。
我希望这个例子能清楚地说明我想为我的新 Z 柱实现什么。关于如何用 R 轻松解决这个问题的任何想法?也许在一个循环?
感谢任何提示!
解决方案
也许以下计算您想要的 - 至少它重现了您的前 3 个给定数字:
(y$Z <- sapply(seq_len(nrow(y)), function(k) {
i <- seq_len(nrow(y))
j <- seq_len(k)
sum((y$X[i[-j]-k]-mean(y$X))*(y$X[i[-j]]-mean(y$X))) / sum((y$X-mean(y$X))^2)
}))
#[1] 0.00528169 -0.22887324 0.10739437 0.07746479 -0.29049296 -0.32042254
#[7] 0.14964789 0.00000000
可以改进不要一次又一次地计算相同的值。
数据:
y <- data.frame(X=c(8,4,2,5,3,2,1,5))
推荐阅读
- flutter - 关注用户部分在 Instagram 中是如何工作的?
- sql-server - 具有 Null 和一对一关系的 ERD
- ios - 关闭模态视图控制器在(iOS13.5 Xcode 11.5)中显示黑屏
- flask-sqlalchemy - 错误:flask_appbuilder.security.sqla.manager:将新用户添加到数据库时出错
- r - R - 从数据集中恢复的患者数量
- c# - 在 Visual Studio 中对 tsx 和 ts 文件中未使用的导入进行排序和删除
- python - 以 JSON 格式输出到 html 结果干净
- solr - 如何在 solr 中向现有文档添加新字段
- php - PHP允许一些HTML标签,在屏幕上写代码
- javascript - serializeArray 在传递给 eval 之前是否对输入进行清理?