我有一个这样的数据框:
Name<-c("v","v","x","y","z")
Position<-c(2,"5;7",3,198,"3;4")
Score<-c(0,100,200,144,3)
df<-data.frame(Name, Position, Score)
df
Name Position Score
1 v 2 0
2 v 5;7 100
3 x 3 200
4 y 198 144
5 z 3,4 3
在df$Position
列中,我偶尔有两个(或更多)数字(例如,在第2行和第5行中)。我想复制这些行,以便它们中的每一个仅包含这些值之一。所以输出看起来像这样:
Name Position Score
1 v 2 0
2 v 5 100
3 v 7 100
4 x 3 200
5 y 198 144
6 z 3 3
7 z 4 3
我也希望df$Position
是数字。
答案 0 :(得分:1)
我们可以使用separate_rows
中的tidyr
library(tidyverse)
df %>%
separate_rows(Position, convert = TRUE)
# Name Position Score
#1 v 2 0
#2 v 5 100
#3 v 7 100
#4 x 3 200
#5 y 198 144
#6 z 3 3
#7 z 4 3