我正在尝试学习R而我无法弄清楚如何附加到列表中.
如果这是Python我会的...
#Python
vector = []
values = ['a','b','c','d','e','f','g']
for i in range(0,len(values)):
vector.append(values[i])
Run Code Online (Sandbox Code Playgroud)
你是怎么用R做的?
#R Programming
> vector = c()
> values = c('a','b','c','d','e','f','g')
> for (i in 1:length(values))
+ #append value[i] to empty vector
Run Code Online (Sandbox Code Playgroud) 我写了一个(相当幼稚的)函数来随机选择两个指定日期之间的日期/时间
# set start and end dates to sample between
day.start <- "2012/01/01"
day.end <- "2012/12/31"
# define a random date/time selection function
rand.day.time <- function(day.start,day.end,size) {
dayseq <- seq.Date(as.Date(day.start),as.Date(day.end),by="day")
dayselect <- sample(dayseq,size,replace=TRUE)
hourselect <- sample(1:24,size,replace=TRUE)
minselect <- sample(0:59,size,replace=TRUE)
as.POSIXlt(paste(dayselect, hourselect,":",minselect,sep="") )
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
> rand.day.time(day.start,day.end,size=3)
[1] "2012-02-07 21:42:00" "2012-09-02 07:27:00" "2012-06-15 01:13:00"
Run Code Online (Sandbox Code Playgroud)
但随着样本量的增加,这似乎在大幅放缓.
# some benchmarking
> system.time(rand.day.time(day.start,day.end,size=100000))
user system elapsed
4.68 0.03 4.70
> system.time(rand.day.time(day.start,day.end,size=200000))
user system elapsed
9.42 0.06 9.49
Run Code Online (Sandbox Code Playgroud)
有人能够以更有效的方式建议如何做这样的事情吗?