使用for循环将数据帧写入R中的dta文件
Using for loop to write data frame as dta file in R
我在列表 a
中有数据帧,我想使用循环将它们保存为 rda
并写为 dta
。我不明白为什么我会收到无法找到对象数据框的错误消息:
for (f in a) {
for (name in 1:length(filenames)) {
save(as.data.frame(f),file = paste("~/Dropbox/Data_Insert/Panels/",name,end_rda,sep=""))
write.dta(as.data.frame(f),file = paste("~/Dropbox/Data_Insert/Panels/",name,end_dta,sep=""))
}
}
Error in save(as.data.frame(f), file = paste("~/Dropbox/Data_Insert/Panels/", :
object ‘as.data.frame(f)’ not found
所以 f
,这将是索引列表中的数据框?我做了 as.data.frame(f)
,因为当我只使用 f
时,我收到消息:
The object "dataframe" must have class data.frame
我将代码更改为 for f in a,但它仍然 returns 错误提示 as.data.frame(f) 未找到。
我认为这就是您想要做的。我假设 a
是数据帧列表,filenames
是相同长度的字符向量。
for (i in 1:length(a)) {
to_save = as.data.frame(a[[i]])
save(to_save, file = paste0("~/Dropbox/Data_Insert/Panels/", filenames[i], end_rda))
write.dta(to_save, file = paste0("~/Dropbox/Data_Insert/Panels/", filenames[i], end_dta))
}
请注意 save
保留了 R 对象的名称,因此当您 load
这些文件中的任何一个时,它将被加载到名称为 to_save
的工作区中。这似乎很糟糕。对于单个 R 对象,我强烈建议您使用 saveRDS
并创建 .RDS 文件而不是 save
。有关 Rda 与 RDS 的示例,请参阅 Ricardo's answer to this question。
我在列表 a
中有数据帧,我想使用循环将它们保存为 rda
并写为 dta
。我不明白为什么我会收到无法找到对象数据框的错误消息:
for (f in a) {
for (name in 1:length(filenames)) {
save(as.data.frame(f),file = paste("~/Dropbox/Data_Insert/Panels/",name,end_rda,sep=""))
write.dta(as.data.frame(f),file = paste("~/Dropbox/Data_Insert/Panels/",name,end_dta,sep=""))
}
}
Error in save(as.data.frame(f), file = paste("~/Dropbox/Data_Insert/Panels/", :
object ‘as.data.frame(f)’ not found
所以 f
,这将是索引列表中的数据框?我做了 as.data.frame(f)
,因为当我只使用 f
时,我收到消息:
The object "dataframe" must have class data.frame
我将代码更改为 for f in a,但它仍然 returns 错误提示 as.data.frame(f) 未找到。
我认为这就是您想要做的。我假设 a
是数据帧列表,filenames
是相同长度的字符向量。
for (i in 1:length(a)) {
to_save = as.data.frame(a[[i]])
save(to_save, file = paste0("~/Dropbox/Data_Insert/Panels/", filenames[i], end_rda))
write.dta(to_save, file = paste0("~/Dropbox/Data_Insert/Panels/", filenames[i], end_dta))
}
请注意 save
保留了 R 对象的名称,因此当您 load
这些文件中的任何一个时,它将被加载到名称为 to_save
的工作区中。这似乎很糟糕。对于单个 R 对象,我强烈建议您使用 saveRDS
并创建 .RDS 文件而不是 save
。有关 Rda 与 RDS 的示例,请参阅 Ricardo's answer to this question。