本质上我有
Var1 Group Value
a 0 1
b 0 2
c 0 3
a 1 2
b 1 10
c 1 9
Run Code Online (Sandbox Code Playgroud)
我想计算一个包含行Var1和单列的表Div,其中对于 的任何值Var1, 的值Div将是Value组 1 的值除以组 2 的值。因此,结果应该是
Var1 Div
a .5
b .2
c .3333
Run Code Online (Sandbox Code Playgroud)
我通过创建两个表来实现这一点(使用 过滤表Group,然后划分Value两个表的列,然后创建一个新表)。tidyverse 中是否有使用管道实现此目的的方法或函数?
在下面的数据框中,我想创建一个新列C,该列将是该列中每个组的累积总和,但这些总和必须从零开始,并且仅添加值,直到该组的倒数第二个条目。BA
A B
0 1 5
1 1 6
2 2 3
3 2 4
4 2 5
5 3 2
5 3 7
6 4 3
Run Code Online (Sandbox Code Playgroud)
所以,我的结果应该是:
A B C
0 1 5 0
1 1 6 5
2 2 3 0
3 2 4 3
4 2 5 7
5 3 2 0
5 3 7 2
6 4 3 0
Run Code Online (Sandbox Code Playgroud)
(我认为这个问题非常明显,但不知怎的,我自己无法弄清楚,也无法在任何地方看到它。)
我正在解决 Agresti 的分类数据分析练习 4.10。
他提供了桌子
Aortic | Mitral
<55 4 1
1259 2082
55+ 7 9
1417 1647
Run Code Online (Sandbox Code Playgroud)
行代表年龄组,列代表心脏瓣膜类型,每个单元格中的两个数字是死亡人数(顶部)和总时间长度(底部)。然后他建议模型 $$ \log(\mu_{ij}) = \alpha + 1 \times \log(t_{ij}) + \beta_1 a_i + \beta_2 \nu_j $$ 其中 $t_{ij}$是单元格$(i,j)的总时间长度,$$a_i$是“55+”的指示变量,$\nu_j$是“二尖瓣”的指示变量。
然后练习 4.10 要求找到 $\beta_1.$ 的 95% 轮廓似然置信区间。我明白这在数学上意味着什么,但我在R. 我正在使用R“ProfileLikelihood”库。
这是我的尝试:
heart_table <- data.frame(
y = c(9,7,1,4),
tot_time = c(1647,1417,2082,1259),
age = c(1,1,0,0), #1 means 55+
valve = c(1,0,1,0) #1 means mitral
)
heart_prof <- profilelike.glm(
y ~ valve,
data = heart_table, …Run Code Online (Sandbox Code Playgroud)