【发布时间】:2018-03-02 18:30:19
【问题描述】:
我有一个这样的数据框:
df <- setNames(data.frame(matrix(c(rep(1,8),c(1,2,3,1,2,3,4,1),
rep("useless",3),"label1",
rep("useless",3),"label2",
floor(runif(8,100,400))),8,4)),
c("subject","trial","block","data"))
subject trial block data
1 1 1 useless 144
2 1 2 useless 380
3 1 3 useless 118
4 1 1 label1 323
5 1 2 useless 250
6 1 3 useless 292
7 1 4 useless 375
8 1 1 label2 358
我想将所有“无用”行变成它们之后的“标签”行。
输出:
subject trial block data
1 1 1 label1 144
2 1 2 label1 380
3 1 3 label1 118
4 1 1 label1 323
5 1 2 label2 250
6 1 3 label2 292
7 1 4 label2 375
8 1 1 label2 358
我是这么想的,但不知道怎么做:
df %>%
mutate(block = ifelse(block == "useless", "make it the end label", block))
我知道必须有一个非常简单的解决方案,但我没有看到它。我更喜欢tidyverse 的回答,但会接受任何可行的方法。
【问题讨论】:
标签: r dataframe dplyr rows r-factor