我在R中推进并且在第一次成功地使用lapply来加载一个名为ImportData()的函数中的文件.工作职能是:
AllData <- lapply(files, function(i){ read.csv(i, stringsAsFactors = FALSE) })
AllData是包含4个数据帧的列表.在未来,它将包含更多.
函数中有两个for循环,我想用lapply替换.第一个是将日期和时间列组合成一个时间戳的循环.我正在抛弃我创建应用功能.
for (i in 1:length(AllData)) { AllData[[i]]$Date <- strptime(paste(AllData[[i]]$Date, AllData[[i]]$Time), "%m/%d/%y %H:%M:%S") AllData[[i]] <- AllData[[i]][-2] }
最后一个循环就是这个.names(AllData)是长度为4的字符向量.
for (i in 1:length(names(AllData))) { cat("Time Frame: ", names(AllData)[i], "\n") trade(AllData[[i]]) }
在这种情况下扔我的是[[i]].我似乎无法通过lapply工作.
谢谢您的帮助.
使用for
xxpply函数之一替换是好的,但更好的是使用向量化函数.
这里例如,不需要使用for
因为操作被矢量化.所以应该写第一个循环:
AllData$Date <- strptime(paste(AllData$Date, AllData$Time), "%m/%d/%y %H:%M:%S")
第二个循环也是一样:
cat(paste("Time Frame: ", names(AllData), "\n"))
编辑如果你有一个data.frames列表,你可以在这里使用循环:
for (x in seq_along(AllData)){ x$Date = strptime(paste(x$Date, x$Time), "%m/%d/%y %H:%M:%S") }