我正在使用具有非常相似名称(df1、df2、.. df7)的 data.frames。由于大部分分析将全部完成,因此我希望尽可能使过程自动化。我已经设法在读取文件时使用assign:
for(i in 1:7) {
NameFile <- paste("df",i,"_10/score.out", sep="")
OutFile <- read.table(NameFile, na.string="NA",header=TRUE,sep="\t")
NameVar <- paste("df",i,"_10", sep="")
assign(NameVar, OutFile)
}
Run Code Online (Sandbox Code Playgroud)
但现在我也想在所有这些中执行操作/功能。例如子集:
for(i in 1:7) {
Newname <- paste("dfsmall",i,sep="")
dftemp <- subset(df[i], p == 0 & abs(sepscore) > 0.3)
assign(Newname, dftemp)
}
Run Code Online (Sandbox Code Playgroud)
我认为大部分是正确的,但我如何调用 df[i]?也就是说,已经存在名称为 df1, df2(..) 的对象?有没有更干净的方法来做到这一点?
这里有一些类似的问题,但没有一个适合我的问题。再说一次,我很容易错过显而易见的事情。
谢谢。
通过使用函数get
(工作相同assign
但相反):
for(i in 1:7) {
get(paste("df",i,"_10",sep="")) -> df
Newname <- paste("dfsmall",i,sep="")
dftemp <- subset(df, p == 0 & abs(sepscore) > 0.3)
assign(Newname, dftemp)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2540 次 |
最近记录: |