-1

我正在尝试编写一个函数来允许用户输入各种参数(“means”、“temp”等),然后将它们编译成一个列表,以便我可以使用它们。列表中的值被提取并分配给对象。

param <- function(){
parameters <- c("means","variance","temp","gene","add") 
x <- list()
for(i in 1:length(parameters)){
  z <- readline(paste("Input ", parameters[i], ": ", sep=""))
  #store inputs in vector x
  x[[z]] <- z
  #x[[i]] <- z
  #x[i] <- z
} #End of for loop to bring in inputs

#Bind results into a vector
y=c(x[[1]],x[[2]],x[[3]],x[[4]],x[[5]])
#Assign answers to proper variable names so they can be used to index.  
means <- y[1]; variance <- y[2]; temp <- y[3]; gene <- y[4]; add <- y[5]
#means <- x[[1]]; variance <- x[[2]]; temp <- x[[3]]; gene <- x[[4]]; add <- x[[5]]
} #End of function to bring in inputs

我想使用这些对象来索引更大的数据框(strn.x)。

yav=strn.x[NT==temp, means]

我参考了https://stat.ethz.ch/pipermail/r-help/2008-April/158757.html来了解如何将用户输入分配给对象,并且我认识到(基于Retrieving specific values from subsetting a data.table)我的问题的一部分是对象所采用的类。我尝试使用“[[”来提取没有名称的值,但它们仍然以类“list”或“data.frame”的形式出现,具体取决于我在上面的函数中包含的内容。

means
 V1
1 FT_mn
class(means)
[1] "data.frame"

我希望他们采用以下形式:

[1] FT_mn

我需要做什么才能使其正常工作?

4

1 回答 1

0

尝试 unlist() 将 data.frame 或列表转换为向量。

于 2012-12-07T00:59:42.967 回答