![](/img/trans.png)
[英]R: How can I group rows in a dataframe, ID rows meeting a condition, then delete prior rows for the group?
[英]How can I split R dataframe rows into multiple rows based on a condition?
如果我的数据类似于:
Variable 1 Variable 2 Variable 3
1 Red|Blue 0|1 1|0
2 Blue|Red 1|0 0|1
3 Green|Red 0|1 1|0
4 Yellow|Blue 1|0 0|1
我可以根据“|”使用什么来分隔? 像这样的东西:
Variable 1 Variable 2 Variable 3
1 Red 0 1
2 Blue 1 0
3 Blue 1 0
4 Red 0 1
5 Green 0 1
6 Red 1 0
7 Yellow 1 0
8 Blue 0 1
您可以使用separate_rows
> df %>%
separate_rows(., Variable1, Variable2, Variable3, convert = TRUE)
# A tibble: 8 x 3
Variable1 Variable2 Variable3
<chr> <int> <int>
1 Red 0 1
2 Blue 1 0
3 Blue 1 0
4 Red 0 1
5 Green 0 1
6 Red 1 0
7 Yellow 1 0
8 Blue 0 1
我们也可以使用cSplit
中的splitstackshape
library(splitstackshape)
cSplit(df1, c("Variable1", "Variable2", "Variable3"), sep="|", "long")
# Variable1 Variable2 Variable3
#1: Red 0 1
#2: Blue 1 0
#3: Blue 1 0
#4: Red 0 1
#5: Green 0 1
#6: Red 1 0
#7: Yellow 1 0
#8: Blue 0 1
df1 <- structure(list(Variable1 = c("Red|Blue", "Blue|Red", "Green|Red",
"Yellow|Blue"), Variable2 = c("0|1", "1|0", "0|1", "1|0"), Variable3 = c("1|0",
"0|1", "1|0", "0|1")), class = "data.frame", row.names = c("1",
"2", "3", "4"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.