在数据帧上运行的最快方法 - 将输出写入两个新列

时间:2017-03-27 21:56:30

标签: r dataframe

好吧,它可能不是最好的标题。我正在尝试优化我的脚本以使其快速运行。让我给你一个示例输入和示例输出:

mydf<- data.frame('col1'=c('firstresult01anotherresult02','firstresult03anotherresult04'))

我可以编写一个自定义函数,从col1中提取信息,例如我从第一行得到类似:'result01''result02',以及'result03'和第二行'result04'。接下来,我想将每行的输出放在不同的列上,例如输出数据帧将是:

        mydf<- data.frame('col1'=c('firstresult01anotherresult02',
         'thirdresult03fourthresult04'), 'col2' = c('result01', 'result03'),
         'col3'=c('result02', 'result04'))

你可以注意到每行的第一个输出字符串是'col2',第二个输出字符串是'col3'。

如果我只有一个输出字符串,我可以这样做:

mydf$col2<- sapply(x = mydf$col1, FUN = my_custom_function)

因为我将有2个输出字符串分成两个单独的列,所以我要么重复操作两次(可能是最快的选项),要么我按行子集,每次都将值分配给两个新列。我想知道是否有一个更优雅的解决方案来做到这一点。如果示例不清楚,请告诉我,我期待大家的到来:))

0 个答案:

没有答案