我有一个如下所示的函数(简化)
private WavAudio wavMixing(WavAudio wav1, WavAudio wav2, double alpha) {
WavAudio wav = new WavAudio();
// perform the mixing as specified in the assignment and stored the mixed audio in wav
// requirements:
// a) wav's duration should be same as wav1.
// b) if wav2 is shorter than wav1, then repeatedly use wav2 in a periodic manner
// your code goes here
// ***Create three byte[] to store data, wav1 data1, wav2 data2, wav data3***
byte data1[] = wav1.getData();
byte data2[] = wav2.getData();
byte[] data3 = new byte[data1.length];
/// ***Add the sum data of wav1 and wav2 to wav***
for (int i=0; i<(data1.length+data2.length)/4; i++) {
short buf1A = data1[i+1];
short buf2A = data1[i];
buf1A = (short) ((buf1A & 0xff) << 8);
buf2A = (short) (buf2A & 0xff);
short buf1B = data2[i+1];
short buf2B = data2[i];
buf1B = (short) ((buf1B & 0xff) << 8);
buf2B = (short) (buf2B & 0xff);
short buf1C = (short) (buf1A + buf1B);
short buf2C = (short) (buf2A + buf2B);
short res = (short) (buf1C + buf2C);
data3[i] = (byte) res;
data3[i+1] = (byte) (res >> 8);
}
// ***set wav data***
wav.setData(data3);
// ***?(?) = ??1(?) + (1 − ?)?2(?) Make wav1 and wav2 have different volume levels***
double rate = alpha*wav1.getRate() + (1-alpha)*wav2.getRate();
// ***set new wav***
wav.set((int) rate,wav1.getNumChannels(),wav1.getBitPerSample(),wav1.getNumSamples(),wav.getData());
// ***wav duration = wav1 duration***
wav.duration = wav1.getDuration();
return wav;
}
它返回两列!
现在,我想调用该函数并将其值分配给现有 tibble 的两个变量。我正在寻找类似的东西
get_identifiers<-function(shares){
result<-c()
for(share in shares){
result<-rbind(result,c("2", "2"))
}
return (result)
}
我怎样才能做到这一点?
我知道我可以执行以下似乎效率不高的操作
res %>% mutate(vars(c("identifier","sedol")),get_identifiers(symbol))
答案 0 :(得分:0)
您可以对功能进行一些更改 -
get_identifiers<-function(shares){
result<-c()
for(share in shares){
result<- rbind(result,c("2", "2"))
}
result <- data.frame(result)
names(result) <- c("identifier","sedol")
return (result)
}
(有更好的方法来编写上述代码,但我明白这只是一个简化的例子。)
然后将输出保存在列表中并使用 unnest_wider
将它们放在不同的列中。
library(dplyr)
library(tidyr)
res %>%
mutate(data = list(get_identifiers(symbol))) %>%
unnest_wider(data)