1
我有这样一个数据帧:替换信息内容如下行
tonelabel <- c("H*", "L-", "H*", "L-%", "(L+H*)", "(L*+!H)", "!H*", "H-", "L*", "H-%", "(H*)", "^H*", "H-", "H*", "H-%", "H*", "H-%", "L*", "H-%", "H*", "L-")
boundary <- c("none", "low", "none", "low", "none", "none", "none", "high", "none", "high", "none", "none", "high", "none", "high", "none", "high", "none", "high", "none", "low")
df <- data.frame(tonelabel, boundary)
df
tonelabel boundary
1 H* none
2 L- low
3 H* none
4 L-% low
5 (L+H*) none
6 (L*+!H) none
7 !H* none
8 H- high
9 L* none
10 H-% high
11 (H*) none
12 ^H* none
13 H- high
14 H* none
15 H-% high
16 H* none
17 H-% high
18 L* none
19 H-% high
20 H* none
21 L- low
在列DF $边界的情况下,所谓的“无”必须被替换或者“低”或“高” 。 “低”还是“高”的决定必须基于以下“低”或“高”。所以如果接下来的“无”是“低”,那么所有先前的“无”应该变成“低”。如果接下来的事情是“高”,那么所有前面的“无”应该变成“高”。一直到下一个“低”或“高”,即。
这是我想的输出是什么样子:
tonelabel boundary
1 H* low
2 L- low
3 H* low
4 L-% low
5 (L+H*) high
6 (L*+!H) high
7 !H* high
8 H- high
9 L* high
10 H-% high
11 (H*) high
12 ^H* high
13 H- high
14 H* high
15 H-% high
16 H* high
17 H-% high
18 L* high
19 H-% high
20 H* low
21 L- low
我真的不能相信界定什么“无”必须是任何解决方案与作为因子水平是继“无” ,而不是在它之前。所以实际上,人们必须从下往上工作。任何想法将非常感谢!
干得漂亮。我正在使用'imputeTS'软件包来解答一个问题,但'dplyr'解决方案更加优雅,我甚至不会打扰。 –
@AndrewBrēza我从来没有听说过这个软件包。也许我会参观 – Sotos
我推荐它。这个软件包做一件事,但做得很好。 –