R代表循环问题:“;错误:$运算符对原子向量无效;在数据帧上循环时

R代表循环问题:“;错误:$运算符对原子向量无效;在数据帧上循环时,r,for-loop,R,For Loop,我正在尝试将一个字符串变量重新格式化为R中包含相同变量的多个数据集的日期。当我只在一个数据帧上运行代码时,它可以工作,但当我尝试使用for循环迭代多个数据帧时,我收到错误:error:$运算符对原子向量无效。以下是我的代码: # dataframes are df1, df2, and df3, all containing the column "date" in character format list <- list(df1, df2, df3) for (i

我正在尝试将一个字符串变量重新格式化为R中包含相同变量的多个数据集的日期。当我只在一个数据帧上运行代码时,它可以工作,但当我尝试使用for循环迭代多个数据帧时,我收到错误:error:$运算符对原子向量无效。以下是我的代码:

# dataframes are df1, df2, and df3, all containing the column "date" in character format
list <- list(df1, df2, df3)
for (i in seq_along(list)) {
  i$date <- as.Date(i$date, "%Y-%m-%d")
}
#数据帧是df1、df2和df3,都包含字符格式的“日期”列

list
i
是一个整数,不是你可以索引的,也许你的意思是
list[[i]]

顺便说一句,将一个变量命名为一个基函数(并且经常使用)是一个非常糟糕的想法和做法。我首先建议将其重命名:


mylist谢谢@AllanCameron
lapply(mylist,transform,date=as.date(date,“%Y-%m-%d”)
也应该解决这个问题。。。我考虑加上这一点,但不想一下子介绍太多。谢谢,谢谢你们两位的帮助@r2evans,将列表命名为“列表”很好。我实际上称之为“数据列表”,所以我不确定它为什么会这样复制。Onyanbu,您的方法有效,但我还想保存原始数据帧,这样我就有了三个单独的数据帧和重新格式化的列。对此有什么见解吗?谢谢
df1$date <- as.Date(df1$date, "%Y-%m-%d")