我有一個數據框,其大部分是每行一個觀察值。然而,某些行有多個值:將一個列中的多個值拆分爲多個行R
# A tibble: 3 x 2
`number` abilities
<dbl> <chr>
1 51 b1261
2 57 d710
3 57 b1301; d550
structure(list(`number` = c(51, 57, 57), abilities = c("b1261",
"d710", "b1301; d550")), .Names = c("number", "abilities"
), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"
))
我想獲得如下:
# A tibble: 3 x 2
`number` abilities
<dbl> <chr>
1 51 b1261
2 57 d710
3 57 d550
4 57 b1301
這是直截了當足以分裂的;但我不確定如何輕鬆添加新行,特別是因爲功能可能包含超過2個值。
這是非常相似的:R semicolon delimited a column into rows,但並不需要刪除重複
我認爲你也需要修剪空白,或者使用'sep =「; \\ s +」',否則最後一個條目在開始時會有空格。 – Marius
@Marius你是對的,我沒有發現它。謝謝! – Lamia
謝謝你,我不知道tidyr中的那個特性。我將空格匹配調整爲:「; \\ s *」以允許零個或多個空格 – pluke