将函数的输出保存为新的 dataf.frame 并在保存名称中使用原始输入的名称
Saving the output of a function as a new dataf.frame and using the name of the original input in the saving name
我编写了一个函数,它根据排名从列表中获取前 50 个结果。
myfunction <- function(x){
...selects the top 50 results
return(the top 50 results)
如果您需要确切的功能,我可以添加更多细节。
理想情况下,我希望函数执行的操作是将前 50 名列表保存为新的 data.frame,方法是自动包含输入名称,如下所示:
'x'_top_50
所以我可以重复使用这个函数,它会自动保存输出供以后使用。
任何帮助都会很棒,谢谢!
编辑
这是我从第一个答案中得到的:
t50<-function(x){
m101mb<-x[,1:2]
m101ts<-x[,3:4]
incommon<-intersect(m101mb$mb_gs,m101ts$ts_gs)
df1<-m101mb[m101mb$mb_gs %in% incommon,]
df2<-m101ts[m101ts$ts_gs %in% incommon,]
df3<-df1[order(df1$mb_gs),]
df4<-df2[order(df2$ts_gs),]
df5<-cbind(df3,df4)
df6<-data.frame(df5$mb_rank,df5$ts_rank)
df7<-rowMeans(df6)
df8<-data.frame(df5,df7)
df9<-data.frame(df8$ts_gs,df8$df7)
df10<-df9[order(df9$df8.df7),]
colnames(df10)<-c("Gene_symbol","Gene_rank")
assign(paste(deparse(substitute(x)),"top", "50", sep = "_"), df10[1:50,])
return(df10[1:50,])
}
但它仍然不会保存为新变量。
谢谢。
我相信你想要的是 assign()
函数来为数据帧分配一个特定的名称;和 deparse()
和 subsitute()
提取先前给定的变量名称。
myfunction <- function(x){
#whatever you're doing it's here that results in the_top_50_results as a dataframe
assign(paste(deparse(substitute(x)), "top", "50", sep = "_"), the_top_50_results, envir = .GlobalEnv)
}
我编写了一个函数,它根据排名从列表中获取前 50 个结果。
myfunction <- function(x){
...selects the top 50 results
return(the top 50 results)
如果您需要确切的功能,我可以添加更多细节。
理想情况下,我希望函数执行的操作是将前 50 名列表保存为新的 data.frame,方法是自动包含输入名称,如下所示:
'x'_top_50
所以我可以重复使用这个函数,它会自动保存输出供以后使用。
任何帮助都会很棒,谢谢!
编辑
这是我从第一个答案中得到的:
t50<-function(x){
m101mb<-x[,1:2]
m101ts<-x[,3:4]
incommon<-intersect(m101mb$mb_gs,m101ts$ts_gs)
df1<-m101mb[m101mb$mb_gs %in% incommon,]
df2<-m101ts[m101ts$ts_gs %in% incommon,]
df3<-df1[order(df1$mb_gs),]
df4<-df2[order(df2$ts_gs),]
df5<-cbind(df3,df4)
df6<-data.frame(df5$mb_rank,df5$ts_rank)
df7<-rowMeans(df6)
df8<-data.frame(df5,df7)
df9<-data.frame(df8$ts_gs,df8$df7)
df10<-df9[order(df9$df8.df7),]
colnames(df10)<-c("Gene_symbol","Gene_rank")
assign(paste(deparse(substitute(x)),"top", "50", sep = "_"), df10[1:50,])
return(df10[1:50,])
}
但它仍然不会保存为新变量。
谢谢。
我相信你想要的是 assign()
函数来为数据帧分配一个特定的名称;和 deparse()
和 subsitute()
提取先前给定的变量名称。
myfunction <- function(x){
#whatever you're doing it's here that results in the_top_50_results as a dataframe
assign(paste(deparse(substitute(x)), "top", "50", sep = "_"), the_top_50_results, envir = .GlobalEnv)
}