【发布时间】:2020-04-22 10:06:14
【问题描述】:
我编写了一个函数,它根据排名从列表中获取前 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,])
}
但它仍然不会保存为新变量。
谢谢。
【问题讨论】:
标签: r function dataframe save output