我有一个数字向量(例如c(1, 11, 1232, 4221, 2)),并且我需要每个元素的数字总和的相应向量(c(1, 2, 8, 9, 2)在前面的示例中)。
我找到了一些针对单个数字的不错的解决方案。最好的(来自R 中的 Digit sum 函数)是:
digitsum <- function(x) sum(floor(x / 10^(0:(nchar(x) - 1))) %% 10)
Run Code Online (Sandbox Code Playgroud)
然而,该解决方案并未矢量化。它一次只能作用于一个元素。
那么,有没有一种方法可以向量化这个解决方案,并创建一个适用于向量的类似函数?(而不是循环遍历所有元素,即)
我有宽格式的数据文件,带有一组重复变量(var1 var2,如下)
数据有:
| ID | background vars| var1.A | var2.A | var1.B | var2.B | var1.C | var2.C |
| -: | :------------- |:------:|:------:|:------:|:------:|:------:|:------:|
| 1 | data1 | 1 | 2 | 3 | 4 | 5 | 6 |
| 2 | data2 | 7 | 8 | 9 | 10 | 11 | 12 |
Run Code Online (Sandbox Code Playgroud)
我需要将其“半途”重塑为长格式,即将每个变量组放在一起(宽),并将每个重复放在不同的行(长)中。
想要的数据:
| ID | background vars | recurrence | var1 | var2 |
| -: | :-------------- |:----------:|:------:|:------:|
| 1 …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,其中包含多个项目的年平均值。
数据有:
df <- data.frame(item = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4),
year = c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
value = c(1, 2, 3, 3, 2, 3, 4, 0, 1, 1, 3, 2, 2, 1, 1, 2))
Run Code Online (Sandbox Code Playgroud)
我需要为每个项目分别生成一个年份和平均值之间的简单线性回归模型。
想要的数据:
| year | slope | intercept |
|:----:|:------:|:----------:|
| 1 | 0.7 | 0.5 |
| 2 | -0.2 | …Run Code Online (Sandbox Code Playgroud) 我正在从 SPSS 迁移到 SAS。我需要分别按变量varA varB组计算变量 varX 的总和,并将其作为新变量sumX添加到同一数据集。
在 SPSS 中,这可以通过aggregate轻松实现:
aggregate outfile *
/break varA varB
/SUMvarX = sum(varX).
Run Code Online (Sandbox Code Playgroud)
这可以在 SAS 中完成吗?