我有一个文件路径和一个以
形式的值列表[path1, [value1,value2,value3,...]]
[path2, [valueA,valueB]]
我想将其转换为
形式path1, value1
path1, value2
path1, value3
.
.
.
path2, valueA
path2, valueB
.
.
.
我知道我可以用foreach做到这一点,但我不确定如何在R基地做到这一点。
我很接近
makeTuple<- function(path,value)
{
result <- cbind(path,value)
return(result)
}
makeTupleList<- function(listFull)
{
path <- listFull[1,1]
list <- listFull[1,2]
result <- lapply(list, makeTuple, path=path) return(result)
}
测试值:
x <- list(c(1,2),c(3,4))
y <- cbind(c(5,6), x)
结果:
makeTupleList(y)
$x
path value
[1,] 5 1
[2,] 5 2
我不确定如何让数据框遍历每一行。
在Haskell中我会做类似
的事情tupleMake (x,list) = [(x,y)| y <- list]
然后只是我的元组列表与表单的路径 (路径,价值观)
答案 0 :(得分:2)
如果我正确理解了问题,这将有效
result <- as.data.frame.matrix(cbind(rep(paths,sapply(values,length)),unlist(values)))
colnames(result) <- c("path","value")
数据强>
values <- list(c(1,2),c(3,4))
paths <- c(5,6)
答案 1 :(得分:0)
可能值得尝试的一个选项,来自@ user2100721的paths
,values
:
do.call(rbind, Map(cbind, paths, values))
[,1] [,2]
[1,] 5 1
[2,] 5 2
[3,] 6 3
[4,] 6 4