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
我推薦它。這個軟件包做一件事,但做得很好。 –