我有一个数据框列表,比方说30(一个月),我必须做一些计算修改的东西,并从列表中填写一些表从每个元素,所以我想要而不是每次更换名称下一个数据框的数据框,我想自动完成,我想到了这个,但它没有用
PS:我的代码没有任何问题,因为我已经在单个数据帧上多次检查,我的问题是如何重复这段代码(还有很多其他行,这只是我原代码的一小部分,每个数据帧包含超过500行),如何访问列表元素???
test<-list(day01,day02....,day30)
lapply(seq_along(test), function(x) {
name=deparse(substitute(test[x]))
jr=as.numeric(substr(name,3,4))
n<-length(test[x]$Date_Heure)
colnames(test[x])[11]<-"Timestamp"
colnames(test[x])[12]<-"Presence"
#tab$time<-as.POSIXct(with_tz(ymd_hms(Date_Heure, tz = "UTC"),"Europe/Paris"))
for (i in 1:n)
{
test[x]$Timestamp[i]<-with_tz(ymd_hms(test[x]$Time[i], tz = "UTC"),"Europe/Paris")
}
})
所以我试着用名字(测试)和测试[[x]]而只用x而不是我什么都没有!!!
对于列表的每个数据框,我将使用前一个数据框中的信息(当然是exesspt),并且它不仅仅是这个函数,我有一个非常大的代码,我将要拆分功能并再次对所有人做同样的事情
所以,如果有一个解决方案,或者是否可以不将我的数据帧放在一个列表中,只为每个数据帧做一个for循环并做我必须做的事情?
答案 0 :(得分:0)
//a simple array with some elements
myArray;
//just to show what I mean...pass the first five elemtns of array to the function
doSomethingWithArray(myArray[0,4]);
function doSomethingWithArray(items) {
//do stuff
}
然后你可以做
# if for a single dataframe x this is well:
name=deparse(substitute(x))
jr=as.numeric(substr(name,3,4))
n<-nrow(x) # length(x$Date_Heure)
colnames(x)[11]<-"Timestamp"
colnames(x)[12]<-"Presence"
#tab$time<-as.POSIXct(with_tz(ymd_hms(Date_Heure, tz = "UTC"),"Europe/Paris"))
for (i in 1:n) x$Timestamp[i] <- with_tz(ymd_hms(x$Time[i], tz = "UTC"),"Europe/Paris")