我尝试使用for循环创建单个向量(我计划在数据框中以类似于Excel列的方式使用),日期增量为一天。这个想法是第一次运行从1月1日开始,第二次运行从1月2日开始,第三次运行开始于1月3日,依此类推......
我有一个POSIXct变量(rdays),它包含一年中前45天(1月1日到2月14日)的日期值,按小时步骤按以下格式显示:
[1] "2012-01-01 00:00:00 EST" "2012-01-01 01:00:00 EST" "2012-01-01 02:00:00 EST"
[4] "2012-01-01 03:00:00 EST" "2012-01-01 04:00:00 EST" "2012-01-01 05:00:00 EST"
[7] "2012-01-01 06:00:00 EST" "2012-01-01 07:00:00 EST" "2012-01-01 08:00:00 EST"...
我正在使用以下for循环来创建这些增量:
for(i in 1:321){
range_days <- rdays + days(i) - days(1)
a <- print(range_days)
}
a # returns only the last iteration (the 321th)
我们的想法是将所有的运行存储在一个向量(或列表)中,但我找不到一种方法来存储它们所有连接的。我需要这种格式的数据以类似的方式将数据提取到Excel中的VLOOKUP以执行其他计算。
答案 0 :(得分:1)
这就是使用sapply循环的东西,例如:
all_results <- sapply(1:321, function(i){
range_days <- rdays + days(i) - days(1)
print(range_days)
})
结果将为循环中的每次迭代赋值。
答案 1 :(得分:1)
如果我们需要使用DatagramChannel channel = DatagramChannel.open();
channel.socket().bind(new InetSocketAddress(9999));
ByteBuffer chunkData = ByteBuffer.allocate(1024);
chunkData.clear();
channel.receive(chunkData);
// remove unwanted data
byte[] validData = new byte[chunkData.position()];
System.arraycopy(chunkData.array(), 0, validData, 0, validData.length);
System.out.println("---has received data:" + new String(validData));
创建for
并将其分配给值
list
然后,我们将range_days <- vector("list", 321)
for(i in seq_len(321)){
range_days[[i]] <- rdays + days(i) - days(1)
}
转换为list
(如果需要)
vector
答案 2 :(得分:1)
使用for循环:
在循环外创建a
作为空对象,然后在循环内将rbind
结果发送到a
以存储所有迭代。
a=NULL
for(i in 1:321){
range_days <- rdays + days(i) - days(1)
a <- rbind(a,range_days)
}