经过大量的实验和谷歌搜索...以及随后的实验再次,我终于得到了关于StackOverflow的第一个问题:)
我有一个data.frame,并希望将自定义函数 expandBases
应用于data.frame的每一行 . expandBases
返回由1行或更多行组成的data.frame(这将根据提供给它的数据而有所不同) . expandBases
实际上返回的列数多于下面的玩具示例 - 但为了说明起见:
structure(list(id = structure(1:3, .Label = c("a", "b", "c"), class = "factor"),
startpos = c(1, 2, 3), len = c(1, 2, 3)), .Names = c("id",
"startpos", "len"), row.names = c(NA, -3L), class = "data.frame")
expandBases <- function(startpos, len)
{
return(data.frame(cy <- startpos + 0:(len - 1)))
}
我希望为返回的data.frame的每一行复制 id
因子 . 我被告知要使用lapply do.call(rbind) . 我想知道是否有基于plyr的解决方案?
提前致谢 .
1 回答
我必须略微猜测你想要什么,但这里是如何使用基础R(
do.call
lapply
)以及plyr
:创建数据框的辅助函数:
使用基数R:
使用plyr:
请注意,我按照您在问题中描述的方式实现了该功能,但这意味着总会丢失一行 . 我怀疑这不是你想要的 .