【发布时间】:2018-06-04 05:34:56
【问题描述】:
给定一个数据框,其中列中的每个观察值都是“x~y”形式的字符串,其中 x 和 y 是整数。
我们的目标是将“x~y”字符串转换为一个向量,c(x..y),它是一个以整数 x 开头并以整数 y 结尾的数字序列。
最后,数据框需要取消嵌套,以便向量的每个元素都有自己的行,而其他列则正确重复。
例如,这是一个数据框:
A B
A1 -1~1
A2 1~3
A3 2~4
上面的数据框应该改成如下:
A B
A1 -1
A1 0
A1 1
A2 1
A2 2
A2 3
A3 2
A3 3
A3 4
不可能设置 str_replace 示例,因为有很多情况.. 如何制作这段代码??
【问题讨论】:
-
dff <- separate_rows(df, B, sep="~"); do.call(bind_rows, lapply(split(dff, dff$A), function(x) { data.frame(A=head(x$A,1), B=seq(min(x$B), max(x$B))) }))应该这样做。
标签: r split tidyr stringr unnest