我有一行其中有几项的数据。
我的实际数据帧要大得多,但是这里有一个示例数据帧来说明我的问题:
shapeId verticeCoordinates
3 [0,0][0,1][1,1][1,0]
7 [0,0][2,0][2,1]
10 [0,0][1,0][0,1][2,2][2,3]
我希望每行中只有一组顶点坐标并具有其对应的shapeId。
我希望数据采用以下格式:
shapeId verticeCoordinates
3 [0,0]
3 [0,1]
3 [1,1]
3 [1,0]
可复制的示例数据:
structure(list(shapeId = c(3L, 7L, 10L), verticeCoordinates = c("[0,0][0,1][1,1][1,0]",
"[0,0][2,0][2,1]", "[0,0][1,0][0,1][2,2][2,3]")), class = "data.frame", row.names = c(NA,
-3L))
您可以在每个左方括号([
)上分割数据并创建新行。
tidyr::separate_rows(df, verticeCoordinates, sep = '(?=\\[)') %>%
dplyr::filter(verticeCoordinates != '')
# shapeId verticeCoordinates
# <int> <chr>
# 1 3 [0,0]
# 2 3 [0,1]
# 3 3 [1,1]
# 4 3 [1,0]
# 5 7 [0,0]
# 6 7 [2,0]
# 7 7 [2,1]
# 8 10 [0,0]
# 9 10 [1,0]
#10 10 [0,1]
#11 10 [2,2]
#12 10 [2,3]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句