如何在R中直接打开含数据框代码的.R文件并转为数据表?
如何读取含dput结构代码的R文件并生成数据框?
问题背景
我先通过以下代码创建了dataA数据框:
Environment= c("ENV1","ENV2","ENV3","ENV4","ENV5") CV1<- c(25.2,26.3,15.2,22.1,21.9) CV2<- c(37.1,34.5,26.0,29.9,28.3) CV3<- c(33.0,30.5,25.0,30.2,28.9) CV4<- c(35.4,37.0,28.0,26.0,34.0) CV5<- c(34.6,32.7,20.0,32.3,28.6) dataA= data.frame(Environment,CV1,CV2,CV3,CV4,CV5)
接着使用dput(dataA)得到其结构代码:
structure(list(Environment = c("ENV1", "ENV2", "ENV3", "ENV4", "ENV5"), CV1 = c(25.2, 26.3, 15.2, 22.1, 21.9), CV2 = c(37.1, 34.5, 26, 29.9, 28.3), CV3 = c(33, 30.5, 25, 30.2, 28.9), CV4 = c(35.4, 37, 28, 26, 34), CV5 = c(34.6, 32.7, 20, 32.3, 28.6)), class = "data.frame", row.names = c(NA, -5L))
将该结构代码保存为PC上的data_code.R文件,现在希望直接读取该文件并得到可直接使用的数据表,请问是否可以在R中直接导入这类含数据框代码的文件并得到数据表?
解决方案
当然可以,以下两种常用方法可实现需求:
方法1:使用source()函数
source()可执行R脚本中的代码,只需给文件内的结构代码添加变量赋值即可:
- 修改
data_code.R文件,给结构代码加上变量赋值:
df <- structure(list(Environment = c("ENV1", "ENV2", "ENV3", "ENV4", "ENV5"), CV1 = c(25.2, 26.3, 15.2, 22.1, 21.9), CV2 = c(37.1, 34.5, 26, 29.9, 28.3), CV3 = c(33, 30.5, 25, 30.2, 28.9), CV4 = c(35.4, 37, 28, 26, 34), CV5 = c(34.6, 32.7, 20, 32.3, 28.6)), class = "data.frame", row.names = c(NA, -5L))
- 在R中执行读取命令:
source("C:/Users/Desktop/data_code.R") print(df)
执行后即可直接调用数据框df。
方法2:使用eval(parse())组合
若不想修改原文件,可直接读取文件内容并解析执行:
df <- eval(parse(file = "C:/Users/Desktop/data_code.R")) print(df)
该方法会直接解析文件中的结构代码,返回数据框对象,无需改动原文件。
内容的提问来源于stack exchange,提问作者J.K Kim
相关产品推荐
相关产品推荐

