我有一个数据集,其中每个记录都有一个间隔,我想拥有相同的信息,但是要作为该间隔内的一组离散值。
示例: 输入数据帧
start end val
1 2 4 a
2 2 5 b
3 1 3 c
输出数据帧
time val
1 2 a
2 3 a
3 4 a
4 2 b
5 3 b
6 4 b
7 5 b
8 1 c
9 2 c
10 3 c
完成这种转换的好方法是什么?此外,val列可以是多个列,以相同的模式重复。
答案 0 :(得分:2)
这是一种方法:
dd = read.table(text = "start end val
1 2 4 a
2 2 5 b
3 1 3 c", header = TRUE)
使用此示例数据:
$http({
header: 'content-type:application/json',
method:'GET',
url: 'https://us-central1-****-*****.cloudfunctions.net/**/GetAll****',
}).then(function(messages){
$scope.member = messages.data.****
})
答案 1 :(得分:1)
这是一个data.table
解决方案
library(data.table)
setDT(df)[, .(time = seq(start, end)), by = val][]
# val time
# 1: a 2
# 2: a 3
# 3: a 4
# 4: b 2
# 5: b 3
# 6: b 4
# 7: b 5
# 8: c 1
# 9: c 2
#10: c 3
数据
df <- structure(list(start = c(2L, 2L, 1L), end = c(4L, 5L, 3L), val = c("a",
"b", "c")), .Names = c("start", "end", "val"), class = "data.frame", row.names = c("1",
"2", "3"))