【发布时间】:2021-10-08 15:56:29
【问题描述】:
我有以下数据集:
test_df=data.frame(Group=c(1,1,1,1,2,2),var1=c(1,0,0,1,1,1),var2=c(0,0,1,1,0,0),var3=c(0,1,0,0,0,1))
| Group | var1 | var2 | var3 |
|---|---|---|---|
| 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 |
| 2 | 1 | 0 | 0 |
| 2 | 1 | 0 | 1 |
我想为 var1-3 添加 3 列 (out1-3),按组计算直到第一个 1 的行数,
如下图:
| Group | var1 | var2 | var3 | out1 | out2 | out3 |
|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 1 | 3 | 2 |
| 1 | 0 | 0 | 1 | 1 | 3 | 2 |
| 1 | 0 | 1 | 0 | 1 | 3 | 2 |
| 1 | 1 | 1 | 0 | 1 | 3 | 2 |
| 2 | 1 | 0 | 0 | 1 | 0 | 2 |
| 2 | 1 | 0 | 1 | 1 | 0 | 2 |
我使用了这个 R 代码,我为我的 3 个变量重复了它,我的实际数据集不仅仅包含 3 列。 但它不起作用:
test_var1<-select(test_df,Group,var1 )%>%
group_by(Group) %>%
mutate(out1 = row_number()) %>%
filter(var1 != 0) %>%
slice(1)
【问题讨论】:
-
请不要发布数据或代码的照片!如果您这样做,愿意帮助您的人将不得不输入所有这些文本。而是提供minimal reproducible example这里是a good overview on how to ask a good question
标签: r dataframe data-management